sql >> Databáze >  >> RDS >> PostgreSQL

Volání funkce se složeným typem jako argumentem z nativního dotazu v jpa

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í:

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.




  1. co znamená hodnota Not a PersistText?

  2. Při připojování databáze je odepřen přístup

  3. Přestaňte prosím používat tento anti-vzor UPSERT

  4. Přidejte vnitřní spojení do příkazu GROUP_CONCAT mySQL