Desejo criar uma função Pl/PgSQL que me retorne se um valor existe para um
determinado campo do tipo INTEGER de uma tabela. Entretanto, o nome da
tabela e o nome do campo serão passados como parâmetro da função. Algo como:

CREATE OR REPLACE FUNCTION f_valor_existe( VARCHAR, VARCHAR, INTEGER )
RETURNS BOOLEAN AS
$f_valor_existe$
DECLARE
    cNomeTabela    ALIAS FOR $1;
    cNomeColuna    ALIAS FOR $2;
    iValor        ALIAS FOR $3;
BEGIN
    -- E aqui, o que fazer???
    -- SELECT cNomeColuna FROM cNomeTabela WHERE cNomeColuna = iValor;

    IF FOUND THEN
        return true;
    END IF;

    RETURN false;
END;
$f_valor_existe$
LANGUAGE 'plpgsql' VOLATILE;

---
Pergunta:
Há como executar um SQL SELECT de forma dinâmica dentro da função que possa
retornar um valor?

-- 
**********************************************
Tiago J. Adami
http://www.adamiworks.com
**********************************************
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a