PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

função de valor definido chamada em contexto que não pode aceitar um conjunto

  1. Chame sua função de retorno de conjunto em uma cláusula FROM.
  2. Sempre especifique seus tipos.

É chamado de Set Returning Function , mas você deseja especificar o tipo composto

Isso é totalmente válido,
RETURNS SETOF RECORD $$

No entanto, você pode ter que chamá-lo com,
SELECT email, user_id
FROM 
    app.lookup_email(4,730035455897450,6,'u')
    AS t(email text, user_id integer)

O contexto no qual você não pode chamar um SRF não tipado é aquele que não possui uma definição de tabela. Essa sintaxe pode ficar desagradável, então é mais fácil alterar RETURNS SETOF RECORD para
RETURNS TABLE(email text, user_id integer) AS $$

e use a função sem a lista de definição de coluna
SELECT email, user_id
FROM app.lookup_email(4,730035455897450,6,'u')

Encontre mais informações nos documentos