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