sql >> Databasteknik >  >> RDS >> PostgreSQL

set-valued funktion anropad i kontext som inte kan acceptera en uppsättning

  1. Anropa din Set Returning-funktion i en FROM-sats.
  2. Ange alltid dina typer.

Det kallas en Ange returfunktion , men du vill ange den sammansatta typen

Detta är helt giltigt,

RETURNS SETOF RECORD $$

Du kan dock behöva ringa det med,

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

Kontexten som du inte kan kalla en otypad SRF i, är en som inte har en tabelldefinition. Den här syntaxen kan bli otäck, så det är bara enklare att ändra RETURNS SETOF RECORD till

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

och använd funktionen utan kolumndefinitionslistan

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

Hitta mer information i dokumenten



  1. kan inte lägga till mysql db-tabell i vb-datakällan

  2. Rengöring av Oracle Date-kolumnen

  3. Kör en orakelfunktion som returnerar en referensmarkör i C#

  4. BESTÄLL EFTER alfabet först och följ sedan efter nummer