Předejte pole doslovný místo konstruktoru pole. Hodnotu lze předat jako řetězcový literál , pak je Postgres vynucený na správný typ:
SELECT some_updates('{"(488, 2019-07-01 00:00:00,342)"}');
Předpoklad:funkce není "přetížená", takže rozlišení typu funkce je jednoznačné s netypovaným vstupem.
Související:
- Jak předat pole vlastního typu funkci Postgres
- Předávání pole vlastního typu postgresové funkci z node-pg a SQL injection
- Existuje způsob, jak zakázat přetěžování funkcí v Postgres
Pokud máte méně než 100 prvků pole, VARIADIC
funkce by pomohla zjednodušit předávání argumentů:
CREATE FUNCTION some_updates(VARIADIC t test[]) ...
Poté předejte řádkové literály jako:
SELECT some_updates('(488, 2019-07-01 00:00:00,342)'
, '(489, 2019-07-02 00:00:00,343)')
Viz:
Pokud potřebujete předat (mnoho) více řádků, zvažte jejich zápis do (dočasné) tabulky s prostým INSERT
a odtud je zpracovat.