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

funkce s hodnotou set volaná v kontextu, která nemůže přijmout sadu

  1. Zavolejte svou funkci Set Returning Function v klauzuli FROM.
  2. Vždy specifikujte své typy.

Říká se tomu Nastavit funkci návratu , ale chcete určit složený typ

To je zcela platné,

RETURNS SETOF RECORD $$

Možná jej však budete muset zavolat pomocí,

SELECT email, user_id
FROM 
    app.lookup_email(4,730035455897450,6,'u')
    AS t(email text, user_id integer)

Kontext, ve kterém nemůžete volat netypovaný SRF, je ten, který nemá definici tabulky. Tato syntaxe může být ošklivá, takže je jednodušší změnit RETURNS SETOF RECORD do

RETURNS TABLE(email text, user_id integer) AS $$

a použijte funkci bez seznamu definic sloupců

SELECT email, user_id
FROM app.lookup_email(4,730035455897450,6,'u')

Další informace naleznete v dokumentech



  1. Importujte soubor OSM do PostGis v systému Windows 10

  2. Obsah podle uživatele:dvě tabulky se sloupci stejného jména nebo spojení?

  3. MySQL odstraňuje nenumerické znaky pro porovnání

  4. Spojení více řádků do jednoho řádku bez agregace [Oracle]