6

ファイルからデータをロードしようとしていて、CREATED_DATE と UPDATED_DATE を SYSDATE に、CREATE_BY と UPDATED_BY を USER に設定したい

ここで私が扱っているテーブル:

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

私が間違っていることはありますか?前もって感謝します。

4

2 に答える 2

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

入力ファイルには最初の 2 列しかないため、これが必要です。残りのものは純粋に計算されます。

指定しない場合、Oracle は 3 番目、4 番目などの列を読み込もうとしますが、見つかりません。

于 2010-08-15T18:16:26.327 に答える
-1

制御ファイルでこれを試してください

(CNO,CTITLE,CREATED_BY "USER", CREATED_DATE SYSDATE, UPDATED_BY "USER", UPDATED_DATE SYSDATE)
于 2015-02-14T21:21:39.363 に答える