Frage

Ich bin aus einer Datei zu laden Daten versuchen, und ich möchte Set CREATED_DATE und UPDATED_DATE zu SYSDATE und CREATE_BY und UPDATED_BY USER

Hier ist die Tabelle, dass ich arbeite mit:

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

und hier ist die Datendatei:

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

und meine Steuerdatei:

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")

Wenn ich versuche, es mit SQL Loader zu laden ... alle Datensätze werden verworfen:

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)
.......

Alle Ideen, was ich falsch mache? Vielen Dank im Voraus.

War es hilfreich?

Lösung

Genau das tun, was Oracle sagt: add TRAILING NULLCOLS zu Ihrer Steuerdatei:

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")

Dies ist erforderlich, weil nur die ersten beiden Spalten in der Eingabedatei sind. Die remaing diejenigen sind rein berechnet.

Wenn Sie es nicht angeben, versucht Oracle eine dritte zu lesen, vierten usw. Spalte, kann aber nicht finden.

Andere Tipps

In der Steuerdatei versuchen, diesen

(CNO,CTITLE,CREATED_BY "USER", CREATED_DATE SYSDATE, UPDATED_BY "USER", UPDATED_DATE SYSDATE)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top