sql >> Databasteknik >  >> RDS >> PostgreSQL

Anropa en funktion med sammansatt typ som argument från native query i jpa

Passera en array literal istället för en array-konstruktor. Värdet kan skickas som sträng bokstavlig , sedan tvingas den till rätt typ av Postgres:

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

Förutsättning:funktionen är inte "överbelastad" så att funktionstypupplösningen är entydig med otypad ingång.

Relaterat:

Om du har färre än 100 arrayelement, en VARIADIC funktion skulle hjälpa till att förenkla att skicka argument:

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

Skicka sedan radbokstaver som:

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

Se:

Om du har (många) fler rader att skicka, överväg att skriva dem till en (tillfällig) tabell med en vanlig INSERT och bearbetar dem därifrån.




  1. Använd PDO databasklass utan att skapa ny anslutning varje gång?

  2. ap_pass_brigade misslyckades i handle_request_ipc-funktionen

  3. SQL Server - var är sys.functions?

  4. Hämta poster från en specifik kolumn i Oracle