Prezados amigos desta conceituada comunidade

Bom Dia!

Tenho uma function que recebe 50 parâmetros, dentre eles, alguns podem ser 
nulos ou com valores, dependendo da situação, Então, para que eu não tenha que 
testar parâmetro por parâmetro e então apos, criar uma query dinâmica, resolvi 
utilizar o conceito do COALESCE(..., ...), entretanto quando o parâmetro é nulo 
o SELECT é executado, contudo não retorna linhas. Conforme o fragmento de 
código/sql abaixo:

1. SELECT *
2. FROM TB_USUARIOS USU
3. WHERE USU.DT_DEMISSAO_USU = COALESCE(p_dDT_DEMISSAO_USU, USU.ID_CODIGO_USU)
4. ORDER BY USU.ID_CODIGO_USU

Neste caso, o campo USU.DT_DEMISSAO_USU na Tabela está NULL,
O Parâmetro p_dDT_DEMISSAO_USU recebido pela Function está NULL também

Logo: WHERE NULL = NULL não retorna registros.

Peço por gentileza uma ajuda neste sentido, pois ficar testando campo a campo 
por meio de "IF ... " e ir montando linha a linha em uma variável e somente ao 
final executá-la por meio do comando " EXECUTE " torna-se inviável, pois tenho 
outras functions com mais de 50 parâmetros, ou seja, se eu conseguir resolver 
esta situação, posso usar a solução para todas as procedures que estão com o 
mesmo problema.

Na certeza de poder contar mais uma vez com a ajuda de todos.

Fico desde já muito agradecido.

Janir F. C. Junior


      Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua 
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a