Question

Je suis en train de charger des données à partir d'un fichier et je veux CREATED_DATE ensemble et UPDATED_DATE à SYSDATE et CREATE_BY et UPDATED_BY USER

Voici le tableau que je travaille avec:

CREATE TABLE CATALOG
(CNO NUMBER,
CTITLE VARCHAR2(25),
CREATED_BY VARCHAR2(10) NOT NULL,
CREATED_DATE DATE NOT NULL,
UPDATED_BY VARCHAR2(10) NOT NULL,
UPDATED_DATE DATE NOT NULL,
CONSTRAINT CATALOG_PK Primary Key (CNO));

et le fichier de données ici:

1,"Title 1"
2,"Title 2"
3,"Title 3"
4,"Title 4"
5,"Title 5"
6,"Title 6"

et mon fichier de contrôle:

LOAD DATA
 INFILE "mydata.csv"
 INTO TABLE CATALOG
 FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'    
 (CNO,CTITLE,CREATED_BY "USER", CREATED_DATE "SYSDATE", UPDATED_BY "USER", UPDATED_DATE "SYSDATE")

Lorsque je tente de le charger avec chargeur SQL ... tous les dossiers sont rejetés:

Record 1: Rejected - Error on table CATALOG, column CREATED_BY.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 2: Rejected - Error on table CATALOG, column CREATED_BY.
Column not found before end of logical record (use TRAILING NULLCOLS)
.......

Toutes les idées ce que je fais mal? Merci à l'avance.

Était-ce utile?

La solution

Il suffit de faire ce que dit Oracle: TRAILING NULLCOLS d'ajouter à votre fichier de contrôle:

LOAD DATA
 INFILE "mydata.csv"
 INTO TABLE CATALOG
 FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS  
 (CNO,CTITLE,CREATED_BY "USER", CREATED_DATE "SYSDATE", UPDATED_BY "USER", UPDATED_DATE "SYSDATE")

Ceci est nécessaire car seules les deux premières colonnes sont dans le fichier d'entrée. Ceux remaing sont purement calculés.

Si vous ne spécifiez pas, Oracle essaie de lire un troisième, quatrième, etc. colonne, mais ne peut pas trouver un.

Autres conseils

Dans le fichier de contrôle, essayez ceci

(CNO,CTITLE,CREATED_BY "USER", CREATED_DATE SYSDATE, UPDATED_BY "USER", UPDATED_DATE SYSDATE)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top