Anderson,

No Postgres, null se propaga, null concatenado com qualquer coisa dá null,
sugiro vc usar coalesce nos inserts.[1]

[1]http://www.postgresql.org/docs/current/static/functions-conditional.html

Emerson Hermann

2011/5/25 Anderson <[email protected]>

> boa tarde pessoal,
>
> seguinte tenho uma função que faz uma comparação pra ver se o campo não
> está nulo, porem esta dando erro ou melhor o is not null não esta
> vereficando
>
> XSELECTINCLUIR := 'SELECT '||XINCREMESSAGERAL||' , '||XINCUNIDESTINO||' ,
> '||XINCNUMEROREMESSA||' FROM '||XTABELAINCLUIR||' WHERE
> '||XINCREMESSAGERAL||' = '||XIDSREMESSAS[I]||';';
>
> EXECUTE XSELECTINCLUIR INTO
> VAIDREMESSAINCLUIR,VAIDDESTINOINCLUIR,VAIDNUMEROREMESSAINCLUIR;
>
>         IF (VAIDREMESSAINCLUIR IS NOT NULL) THEN
>
>                IF(XARMAZENACURVALIDGERAL = 0) THEN
>                         XINSERT := 'INSERT INTO '||XTABELAROMANEIO||'('||
>                                 XTABELAROMANEIOREMESSAGERAL||','||
>                                 XTABELAROMANEIOANO||','||
>                                 XTABELAROMANEIOUSUARIO||','||
>                                 XTABELAROMANEIOSETOR||','||
>                                 XTABELAROMANEIOUNIDADE||','||
>                                 XTABELAROMANEIODE||','||
>                                 XTABELAROMANEIOPARA||'
>                                 )VALUES('||
>                                 VAIDREMESSA||','||
>                                 XANO||','||
>                                 XUSUARIOID||','||
>                                 XSETOR||','||
>                                 XUNIDADEID||','||
>                                 XUNIDADEID||','||
>                                 XUNIDADEDESTINO||')';
>                END IF;
>                 IF(XARMAZENACURVALIDGERAL != 0) THEN
>                     XINSERT := 'INSERT INTO '||XTABELAROMANEIO||'('||
>                                 XTABELAROMANEIOIDGERAL||','||
>                                 XTABELAROMANEIONUMERO||','||
>                                 XTABELAROMANEIOREMESSAGERAL||','||
>                                 XTABELAROMANEIOANO||','||
>                                 XTABELAROMANEIOUSUARIO||','||
>                                 XTABELAROMANEIOSETOR||','||
>                                 XTABELAROMANEIOUNIDADE||','||
>                                 XTABELAROMANEIODE||','||
>                                 XTABELAROMANEIOPARA||'
>                                 )VALUES('||
>                                 XARMAZENACURVALIDGERAL||','||
>                                 VAIDREMESSA||','||
>                                 XARMAZENACURVALUNIDADE||','||
>                                 XANO||','||
>                                 XUSUARIOID||','||
>                                 XSETOR||','||
>                                 XUNIDADEID||','||
>                                 XUNIDADEID||','||
>                                 XUNIDADEDESTINO||')';
>                       END IF;
>
>                  EXECUTE XINSERT;
>         END IF;
>
>
> o retorno é "argumento de consulta de string do EXECUTE é nulo" o problema
> é que se o teste ver que é nulo não era pra executar o EXECUTE XINSERT;
>
> versão do banco 8.3
>
> desde já agradeço.
>
> Anderson
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a