Übergeben Sie ein Array literal anstelle eines Array-Konstruktors. Der Wert kann als String-Literal<übergeben werden /a> , dann wird es von Postgres auf den richtigen Typ gezwungen:
SELECT some_updates('{"(488, 2019-07-01 00:00:00,342)"}');
Voraussetzung:Die Funktion ist nicht "überladen", damit die Auflösung des Funktionstyps bei untypisierter Eingabe eindeutig ist.
Verwandte:
- So übergeben Sie ein benutzerdefiniertes Typarray an die Postgres-Funktion
- Array des benutzerdefinierten Typs wird von node-pg und SQL-Injection an die Postgres-Funktion übergeben
- Gibt es eine Möglichkeit, das Überladen von Funktionen in Postgres zu deaktivieren
Wenn Sie weniger als 100 Array-Elemente haben, ein VARIADIC
Funktion würde helfen, die Übergabe von Argumenten zu vereinfachen:
CREATE FUNCTION some_updates(VARIADIC t test[]) ...
Übergeben Sie dann Zeilenliterale wie:
SELECT some_updates('(488, 2019-07-01 00:00:00,342)'
, '(489, 2019-07-02 00:00:00,343)')
Siehe:
Wenn Sie (viel) mehr Zeilen zu übergeben haben, sollten Sie erwägen, sie mit einem einfachen INSERT
in eine (temporäre) Tabelle zu schreiben und verarbeiten sie von dort aus.