IsNumber em Oracle PL/SQL

05/fevereiro/2010 - Oracle

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;
Share


3 comentários

  1. #
    Rd
    julho 6th, 2013 at 11:10

    Valeu Roberto. Me ajudou aqui.

    Abs e tenha um bom fim de semana.

    Responda a esse comentário

Deixe seu comentário para Rd