Pular para o conteúdo

IsNumber em Oracle PL/SQL

Olá

Existem duas formas de verificar se uma string contém um número válido. A primeira forma é usando as funções translate, trim e length. Quando usadas em conjunto você obtém null se a string for número ou o comprimento da string sem espaços em branco. Veja abaixo:

select

length(trim(translate('minha_variavel', ' +-0123456789.', ' '))) n1,

length(trim(translate('123456789.9999', ' +-0123456789.',' '))) n2

from dual;

O resultado dessa query é:

N1    N2
14    null

Outra forma é usando a função to_number().  Caso a string passada contiver caracteres não numéricos é lançada uma exceção.

Observação: Um número na notação exponencial também será válido. Exemplo: 1E1

declare
n number;
s varchar2(10);
begin
s :=  '1236';
n :=  to_number(s);
dbms_output.put_line('É número');
exception when others then
dbms_output.put_line('Não é número');
end;

3 comentários em “IsNumber em Oracle PL/SQL”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *