Passer un tableau littéral au lieu d'un constructeur de tableau. La valeur peut être transmise en tant que littéral de chaîne , puis il est contraint au bon type par Postgres :
SELECT some_updates('{"(488, 2019-07-01 00:00:00,342)"}');
Condition préalable :la fonction n'est pas "surchargée" afin que la résolution du type de fonction soit sans ambiguïté avec une entrée non typée.
Connexe :
- Comment passer un tableau de type personnalisé à la fonction Postgres
- Passage d'un tableau de type personnalisé à la fonction postgres à partir de node-pg et injection SQL
- Existe-t-il un moyen de désactiver la surcharge de fonctions dans Postgres
Si vous avez moins de 100 éléments de tableau, un VARIADIC
aiderait à simplifier le passage d'arguments :
CREATE FUNCTION some_updates(VARIADIC t test[]) ...
Passez ensuite des littéraux de ligne tels que :
SELECT some_updates('(488, 2019-07-01 00:00:00,342)'
, '(489, 2019-07-02 00:00:00,343)')
Voir :
Si vous avez (beaucoup) plus de lignes à transmettre, envisagez de les écrire dans une table (temporaire) avec un simple INSERT
et de les traiter à partir de là.