TAGs: Oracle, SQL, PL/SQL, isNumber, isNumeric
Não existe uma função para testar se o conteúdo de uma string representa um valor numérico, mas existe um workaround.
LENGTH(TRIM(TRANSLATE(string1, ' +-.0123456789', ' ')))
Essa função vai retornar null se o valor for numérico, assim você pode testar com "is null" em uma cláusula where. Por exemplo:
select * from tabela where LENGTH(TRIM(TRANSLATE(campoString, ' +-.0123456789', ' '))) is null
A função translate troca os dígitos por espaços ' '. A função trim remove os espaços. A função length retorna o tamanho da string. Se a string não for numérica, o tamanho será positivo, caso seja numérica, length retornará null.
Fonte: http://www.techonthenet.com/oracle/questions/isnumeric.php
Dicas de programação. A idéia é ir postando as soluções dos problemas que enfrento diariamente no desenvolvimento de software. Como minha memória é muito volátil, essa é a maneira que encontrei de lembrar de como resolvi cada problema. Quem sabe, de quebra, não acabo ajudando outras pessoas?
Mostrando postagens com marcador isNumeric. Mostrar todas as postagens
Mostrando postagens com marcador isNumeric. Mostrar todas as postagens
quarta-feira, 3 de agosto de 2011
Função Oracle PL/SQL para testar se uma string representa um número: isNumber ou isNumeric
Assinar:
Postagens (Atom)