PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

funzione set-valued chiamata nel contesto che non può accettare un set

  1. Chiama la tua funzione di restituzione del set in una clausola FROM.
  2. Specifica sempre i tuoi tipi.

Si chiama Set Returning Function , ma vuoi specificare il tipo composto

Questo è assolutamente valido,

RETURNS SETOF RECORD $$

Tuttavia, potresti doverlo chiamare con,

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

Il contesto in cui non puoi chiamare un SRF non tipizzato è uno che non ha una definizione di tabella. Questa sintassi può diventare sgradevole, quindi è più facile cambiare RETURNS SETOF RECORD a

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

e usa la funzione senza l'elenco di definizione delle colonne

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

Trova maggiori informazioni in i documenti