2009-07-13 7 views
0

J'essaie de charger des données à l'aide du chargeur SQL. Voici le haut de mon fichier de contrôle/données:Problème avec le fichier de contrôle Oracle Sql Loader

LOAD DATA 
INFILE * 
APPEND INTO TABLE economic_indicators 
FIELDS TERMINATED BY ',' 
(ASOF_DATE DATE 'DD-MON-YY', 
VALUE FLOAT EXTERNAL, 
STATE, 
SERIES_ID INTEGER EXTERNAL, 
CREATE_DATE DATE 'DD-MON-YYYY') 
BEGINDATA 
01-Jan-79,AL,67.39940538,1,23-Jun-2009 

... beaucoup d'autres lignes de données.

Le problème est que le chargeur SQL ne reconnaît pas les types de données que je spécifie. Ceci est le fichier journal:

Table ECONOMIC_INDICATORS, loaded from every logical record. 
Insert option in effect for this table: APPEND 

Column Name     Position Len Term Encl Datatype 
------------------------------ ---------- ----- ---- ---- --------------------- 
ASOF_DATE       FIRST  * ,  DATE DD-MON-YY  
VALUE        NEXT  * ,  CHARACTER    
STATE        NEXT  * ,  CHARACTER    
SERIES_ID       NEXT  * ,  CHARACTER    
CREATE_DATE       NEXT  * ,  DATE DD-MON-YYYY  

value used for ROWS parameter changed from 10000 to 198 
Record 1: Rejected - Error on table ECONOMIC_INDICATORS, column VALUE. 
ORA-01722: invalid number 

... beaucoup d'erreurs similaires, attendues si vous essayez d'insérer des données char dans une colonne numérique.

J'ai essayé aucune spécification de type de données, toutes les autres spécifications numériques, et toujours le même problème. Des idées?

En outre, des idées sur pourquoi il modifie le paramètre Rows?

Répondre

3

De votre exemple, SQL * Loader essayera d'évaluer la chaîne "AL" à une valeur numérique, ce qui entraînera le message d'erreur que vous avez donné. Les données de l'échantillon ont quelque chose qui pourrait ressembler à un nombre décimal à la troisième position, pas à la seconde comme spécifié dans la liste des colonnes.

+0

ahh. Les dangers de travailler seul. Merci. – Marc

Questions connexes