Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
31 mars 2012 6 31 /03 /mars /2012 20:32

 

ORACLE TO_NUMBER.

Comment convertir une chaîne de caractères contenant des chiffres en valeur de type NUMBER ?
Comment gérer l'erreur ORA-01722: Nombre non valide avec la fonction TO_NUMBER ?

 

Fonction TO_NUMBER.

La fonction de conversion TO_NUMBER convertit une chaîne de caractères contenant des chiffres en valeur de type NUMBER.

 

SYNTAXE TO_NUMBER.

 
 TO_NUMBER(expr [, fmt [, 'nlsparam' ] ]) 

expr peut être une valeur BINARY_FLOAT ou BINARY_DOUBLE ou une valeur CHAR, VARCHAR2, NCHAR, ou NVARCHAR2.

 

EXEMPLE CONVERSION SIMPLE TO_NUMBER

 
 SQL> SELECT TO_NUMBER('456,64') FROM DUAL; TO_NUMBER('456,64') ------------------- 456,64 SQL> 

 

EXEMPLE CONVERSION TO_NUMBER FORMATEE

 
 SQL> SELECT TO_NUMBER('1 000,00','9G999D99') FROM DUAL; TO_NUMBER('1000,00','9G999D99') ------------------------------- 1000 SQL> 

 

ORA-01722: Nombre non valide AVEC TO_NUMBER

 
 SQL> SELECT TO_NUMBER('1 000,00') FROM DUAL; SELECT TO_NUMBER('1 000,00') FROM DUAL * ERREUR à la ligne 1 : ORA-01722: Nombre non valide SQL> 

SELECT TO_NUMBER('1 000,00','9G999D99') FROM DUAL; pour ne plus avoir cette erreur ORA-01722.

 

ERREUR ORA-01722: Nombre non valide AVEC TO_NUMBER

 
 SQL> SELECT TO_NUMBER('1000.50','99999D99') FROM DUAL; SELECT TO_NUMBER('1000.50','99999D99') FROM DUAL * ERREUR à la ligne 1 : ORA-01722: Nombre non valide ---------------------------------------------------------------------------- SQL> SELECT TO_NUMBER('1000.50','99999D999','NLS_NUMERIC_CHARACTERS = ''.,''') FROM DUAL; TO_NUMBER('1000.50','99999D999','NLS_NUMERIC_CHARACTERS=''.,''') ---------------------------------------------------------------- 1000,5 SQL> 

'NLS_NUMERIC_CHARACTERS = ''.,''' pour ne plus avoir cette erreur ORA-01722.

 

 

Haut de Page www.dba-ora.fr

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Function SQL Oracle TO_DATE
• Function SQL Oracle TO_CHAR

Partager cet article

Repost 0
Published by Daniel Roesch - dans FUNCTIONS - SQL
commenter cet article

commentaires