Pessoal,

vamos lá. Dado o seguinte trecho hipotético de código:

CREATE OR REPLACE FUNCTION ativo(integer,character(2),integer) RETURNS
integer CALLED ON NULL INPUT AS $$
DECLARE
    conta_id alias for $1;
    conta_alias for $2;
    conta_detalhe alias for $3;
    retorno integer;
BEGIN
    EXECUTE 'SELECT nextval(''conta_conta_id_seq''::text)' retorno;
    EXECUTE 'INSERT INTO conta
VALUES('||retorno||','''||conta_alias||''','||conta_detalhe||',current_timestamp,NULL,''1'',NULL)';
RETURN retorno;
EXCEPTION
    WHEN SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION THEN
    RETURN 'SYNTAX ERROR OR ACCESS RULE VIOLATION';
END;
$ LANGUAGE plpgsql;

A questão é a segunte, eu posso ter a segunte entreda: select
ativo(1451,'LU',NULL) e é esse último null que tá me dando trabalho pois o
EXECUTE não reconhece quando é null e ai ja viu, meu insert fica incompleto.
Não to conseguindo colocar NULL no lugar da variavel conta_detalhe. Dando o
seguinte código de erro:

ERRO:  cannot EXECUTE a null querystring
CONTEXTO:  PL/pgSQL function "ativo" line xx at EXECUTE statement

Se alguem tiver alguma dica, valeu...

-- 
________________________
Prof Luciano Schardosim
Mobile 51 9603.2608
Email [email protected]
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a