Подайте литерал на масив вместо конструктор на масив. Стойността може да бъде предадена като низов литерал , след това се принуждава към правилния тип от Postgres:
SELECT some_updates('{"(488, 2019-07-01 00:00:00,342)"}');
Предварително условие:функцията не е „претоварена“, така че разделителната способност на типа на функцията да е недвусмислена с нетипизиран вход.
Свързани:
- Как да предадете персонализиран тип масив към функцията на Postgres
- Предаване на масив от потребителски тип към функцията postgres от node-pg и SQL инжекция
- Има ли начин да деактивирате претоварването на функции в Postgres
Ако имате по-малко от 100 елемента на масив, VARIADIC
ще помогне за опростяване на предаването на аргументи:
CREATE FUNCTION some_updates(VARIADIC t test[]) ...
След това предайте редови литерали като:
SELECT some_updates('(488, 2019-07-01 00:00:00,342)'
, '(489, 2019-07-02 00:00:00,343)')
Вижте:
Ако имате (много) повече редове за предаване, обмислете записването им във (временна) таблица с обикновен INSERT
и ги обработваме оттам.