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:
- Hur man skickar anpassad typ array till Postgres funktion
- Överför array av anpassad typ till postgres-funktion från node-pg och SQL-injektion
- Finns det något sätt att inaktivera funktionsöverbelastning i Postgres
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.