Fernando Brombatti escreveu:
> O TO_NUMBER me pareceu mais "transparente". 
> 


O problema com a to_number() é o tamanho da string com 9s que você é 
obrigado a colocar: ela precisa ter o mesmo tamanho da string original 
caso contrário pode não considerar todos os algarismos existentes.

É contornável mas a expressão fica mais complexa:

bdteste=# SELECT to_number('AB345CD234','99999');
  to_number
-----------
        345
(1 registro)

bdteste=# SELECT to_number('AB345CD234','99999999');
  to_number
-----------
       3452
(1 registro)

bdteste=# SELECT to_number('AB345CD234','9999999999');
  to_number
-----------
     345234
(1 registro)


bdteste=# \set foo '\'AB3,45CD#xz234\''
bdteste=# SELECT to_number(:foo,repeat('9', length(:foo)));
  to_number
-----------
     345234
(1 registro)

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a