[ORACLE] Conversion notation scientifique -> decimal

Conversion notation scientifique -> decimal [ORACLE] - SQL/NoSQL - Programmation

Marsh Posté le 16-10-2007 à 11:11:34    

Hello
 
J'ai un souci avec une conversion, je dois insérer des données provenant d'un fichier csv dans lequel  
un des champs a ceci comme valeur : 1.15E+11
 
Mon objectif et de trouver une conversion qui me permette de l'inserer dasn un champ de type decimal(30,8)
 
J'ai essayer ceci :
 
CAST (TO_NUMBER(replace(REGEXP_REPLACE(replace(Column14,'''',''),'^(-)?( )*([0-9]*\.?[0-9]*)(E[0-9]*)?(-)?( )*([[:cntrl:]]*)$','+\1\5\3\4'),'+-','-')
,CASE WHEN REGEXP_LIKE(Column14,'[.*[:digit:]]E[[:digit:]].*')
THEN 'S9999999999999999999EEEE'
ELSE 'S9999999999999999999.99999999999999999999'
END) AS NUMBER(30,8))
 
mais j'ai toujours le message d'erreur suivant :
 
ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-01722: invalid number
ORA-06512: at "SYS.ORACLE_LOADER", line 52
 
Un avis ? merci  
 
 
 
 
 

Reply

Marsh Posté le 16-10-2007 à 11:11:34   

Reply

Marsh Posté le 17-10-2007 à 10:38:40    

Hello
 
Bon ben après investigation ce formatage est correct, c'étais les données sources qui avaient un CR donc j'ai résolu mon problème avec un :
-  RTRIM(TRIM(Column14),Chr(13))  
 
Sorry de polluer..
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed