sql >> Database >  >> RDS >> PostgreSQL

Roep een functie aan met samengesteld type als argument van native query in jpa

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:

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.




  1. problemen met het installeren van mysql python, mysqldb-module niet gevonden in django

  2. Hoe Atanh() werkt in PostgreSQL

  3. Fout bij automatisch maken van SQLExpress-databasebestand voor site die gebruikmaakt van AspNetSqlMembershipProvider, maar verbindingsreeks is naar SQL Server 2005

  4. Een aparte gegevensbron maken voor mijn sessie-lente met JDBC en lente-gegevens jpa in spring boot