sql >> Base de Datos >  >> RDS >> Oracle

Determinar si los datos de campo en Oracle son de tipo numérico

Determinar si los datos de campo en Oracle son de tipo numérico

Problema

Desea consultar aquellos solo desde el campo varchar2 o char que contiene datos numéricos sin ningún otro carácter.

Solución

Cree una función para determinar esto:

Create or Replace Function is_number (iNumber in Varchar2)
    Return Varchar2
is
nVal Number; 
Begin
   nVal := To_Number(iNumber);
  -- if there is no error 
   Return('TRUE');
Exception
  when others then
   -- error during conversion 
   Return('FALSE');
end;

Usar en consulta:

Select Empno, Ename, dummychar
   from emp
where is_number(dummychar) = 'TRUE';