1
resposta

[Dúvida] Referência coluna ambígua Função com plpsql

Bom dia! Não estou conseguindo criar uma função composta ao módulo Estrutura de controle

CREATE OR REPLACE FUNCTION instrutores_bem_pagos3(valor_salario DECIMAL, OUT nome VARCHAR, OUT salario DECIMAL) RETURNS SETOF record AS $$

    BEGIN
        RETURN QUERY SELECT nome, salario FROM instrutor WHERE salario > valor_salario;
    END;    
$$ LANGUAGE plpgsql;
SELECT * FROM instrutores_bem_pagos3(300);

Erro:

ERROR:  referência à coluna "nome" é ambígua
LINE 1: SELECT nome, salario FROM instrutor WHERE salario > valor_sa...
               ^
DETAIL:  Ela poderia referenciar uma variável PL/pgSQL ou uma coluna de tabela.
QUERY:  SELECT nome, salario FROM instrutor WHERE salario > valor_salario
CONTEXT:  função PL/pgSQL instrutores_bem_pagos3(numeric) linha 4 em RETURN QUERY
SQL state: 42702
1 resposta

nome é tanto uma coluna quanto um parâmetro. Mude sua query para:

SELECT instrutor.nome, salario FROM instrutor WHERE salario > valor_salario;