2010-08-14 10 views
6

Tôi đang cố gắng để tải dữ liệu từ một tập tin và tôi muốn thiết lập CREATED_DATE và UPDATED_DATE để SYSDATE và CREATE_BY và UPDATED_BY để USERSQL Loader kịch bản giúp đỡ với việc thêm SYSDATE, USER

Dưới đây bảng mà tôi đang làm việc với:

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

và đây là file dữ liệu:

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

và control file của tôi:

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

Khi tôi cố gắng để tải nó với SQL Loader ... tất cả hồ sơ bị từ chối:

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

Bất kỳ ý tưởng những gì tôi đang làm sai? Cảm ơn trước.

Trả lời

8

Chỉ cần làm những gì Oracle cho biết: thêm TRAILING NULLCOLS để control file của bạn:

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

này là cần thiết bởi vì chỉ có hai cột đầu tiên là trong tập tin đầu vào. Các bản remaing được tính toán hoàn toàn.

Nếu bạn không chỉ định, Oracle cố đọc cột thứ ba, thứ tư, v.v. nhưng không thể tìm thấy.

+0

Cảm ơn rất nhiều! – relyt

-1

Trong control file thử này

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