Obrigado, Fabrízio. Gostaria de fazer mais duas perguntas a respeito da sua resposta:
1) Existem duas funções EXECUTE no PostgreSQL? Estive consultando a documentação em [1] e pelo o que entendi, é apenas para códigos preparados (prepared statements); 2) A função agora ficou assim: 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; cSQL TEXT; nID INTEGER; BEGIN cSQL = 'SELECT '||cNomeColuna||' FROM '||cNomeTabela||' WHERE '||cNomeColuna || ' = ' || CAST(iValor AS TEXT); RAISE INFO 'Comando SQL: %', cSQL; EXECUTE cSQL; IF FOUND THEN return true; END IF; RETURN false; END; $f_valor_existe$ LANGUAGE 'plpgsql' VOLATILE; Compila e executa perfeitamente. Mas mesmo existindo o valor na tabela, o resultado de "FOUND" sempre é "FALSE". Alguma sugestão para contornar este comportamento? Obrigado mais uma vez. [1] http://www.postgresql.org/docs/8.4/static/sql-execute.html -- ********************************************** Tiago J. Adami http://www.adamiworks.com ********************************************** 2009/9/30 Fabrízio de Royes Mello <fabriziome...@gmail.com> > > > 2009/9/30 Tiago Adami <adam...@gmail.com> > >> Já estudei o EXECUTE antes de postar a pergunta. Não encontrei um meio de >> colocar o nome da tabela e o nome da coluna de forma dinâmica, apenas os >> valores. Como disse anteriormente, preciso passar o nome da tabela (FROM) e >> o nome da coluna como parâmetros da função, assim como o seu valor. >> > > Quem sabe algo parecido com: > > EXECUTE 'SELECT '||cNomeColuna||' FROM '||cNomeTabela||' WHERE > '||cNomeColuna =' || CAST(iValor AS TEXT); > > > Cordialmente, > -- > Fabrízio de Royes Mello > >> Blog sobre TI: http://fabriziomello.blogspot.com > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral