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

Responder a