Oracle
 sql >> Base de données >  >> RDS >> Oracle

Déterminer si les données de champ dans Oracle sont de type numérique

Déterminer si les données de champ dans Oracle sont de type numérique

Problème

Vous souhaitez interroger ceux uniquement à partir du champ varchar2 ou char contenant des données numériques sans aucun autre caractère.

Solution

Créez une fonction pour le déterminer :

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;

Utiliser dans la requête :

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