Geef een array door letterlijk in plaats van een array-constructor. De waarde kan worden doorgegeven als letterlijke tekenreeks , dan wordt het door Postgres naar het juiste type gedwongen:
SELECT some_updates('{"(488, 2019-07-01 00:00:00,342)"}');
Voorwaarde:de functie is niet "overbelast" zodat de resolutie van het functietype eenduidig is bij ongetypte invoer.
Gerelateerd:
- Hoe een aangepast type array door te geven aan de Postgres-functie
- Array van aangepast type doorgeven aan postgres-functie van node-pg en SQL-injectie
- Is er een manier om overbelasting van functies in Postgres uit te schakelen
Als u minder dan 100 array-elementen heeft, wordt een VARIADIC
functie zou helpen om het doorgeven van argumenten te vereenvoudigen:
CREATE FUNCTION some_updates(VARIADIC t test[]) ...
Geef dan rijletters door zoals:
SELECT some_updates('(488, 2019-07-01 00:00:00,342)'
, '(489, 2019-07-02 00:00:00,343)')
Zie:
Als je (veel) meer rijen moet doorgeven, overweeg dan om ze naar een (tijdelijke) tabel te schrijven met een duidelijke INSERT
en ze vanaf daar te verwerken.