sql >> Base de Datos >  >> RDS >> PostgreSQL

Llame a una función con tipo compuesto como argumento de consulta nativa en jpa

Pasar una matriz literal en lugar de un constructor de matriz. El valor se puede pasar como string literal , Postgres lo fuerza al tipo correcto:

SELECT some_updates('{"(488, 2019-07-01 00:00:00,342)"}');

Condición previa:la función no está "sobrecargada", por lo que la resolución del tipo de función no es ambigua con una entrada sin tipo.

Relacionado:

Si tiene menos de 100 elementos de matriz, un VARIADIC La función ayudaría a simplificar el paso de argumentos:

CREATE FUNCTION some_updates(VARIADIC t test[]) ...

Luego pase literales de fila como:

SELECT some_updates('(488, 2019-07-01 00:00:00,342)'
                  , '(489, 2019-07-02 00:00:00,343)')

Ver:

Si tiene (muchas) filas más para pasar, considere escribirlas en una tabla (temporal) con un simple INSERT y procesarlos desde allí.