2010-08-14 5 views
6

estoy tratando de cargar datos de un archivo y quiero establecer CREATED_DATE y UPDATED_DATE a SysDate y CREATE_BY y UPDATED_BY al USUARIOcargador del SQL ayuda guión con la adición de SYSDATE, USUARIO

Aquí la mesa que estoy trabajando con:

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

y aquí está el archivo de datos:

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

y mi archivo de control:

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

Cuando intento cargar con el cargador del SQL ... todos los registros son rechazadas:

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

Alguna idea de lo que estoy haciendo mal? Gracias por adelantado.

Respuesta

8

Eso sí, lo que dice Oracle: añadir TRAILING NULLCOLS a su archivo de control:

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

Esto es necesario porque sólo las dos primeras columnas se encuentran en el archivo de entrada. Los remanentes son puramente computados.

Si no lo especifica, Oracle intenta leer una tercera, cuarta, etc. columna, pero no puede encontrar una.

+0

Gracias mucho! – relyt

-1

En archivo de control de probar este

(CNO,CTITLE,CREATED_BY "USER", CREATED_DATE SYSDATE, UPDATED_BY "USER", UPDATED_DATE SYSDATE) 
Cuestiones relacionadas