2010-08-14 10 views
6

나는 파일에서 데이터를로드하기 위해 노력하고있어 나는 CREATED_DATE과 UPDATED_DATE가 SYSDATE으로 설정할 및 CREATE_BY 및 UPDATED_BY 로 : 여기SQL 로더 스크립트 도움말, 사용자

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

데이터 파일입니다

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

내 제어 파일 :

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

나는 모든 레코드가 거부 ... SQL 로더로로드하려고 할 때 : 내가 잘못 뭘하는지

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

어떤 아이디어? 미리 감사드립니다.

답변

8

그냥 오라클의 말씀을 수행하여 제어 파일에 TRAILING NULLCOLS를 추가 : 첫 번째 두 개의 열이 입력 파일에 있기 때문에

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

이 필요합니다. remaing 것들은 순수하게 계산됩니다.

지정하지 않으면 Oracle은 세 번째, 네 번째 등의 열을 읽으려고 시도하지만 찾을 수 없습니다. 제어 파일에서

+0

감사하십시오! – relyt

-1

매우이

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