制御ファイルに 5 つのフィールドを定義しました。フィールドはコンマで終了するため、SQL 文字列を介して ID フィールドにシーケンス値をロードしている場合でも、TRAILING NULLCOLS が指定されていない限り、5 つのフィールドの各レコードに 5 つのコンマが必要です。
RE: OPのコメント
それは簡単なテストでの私の経験ではありません。次の制御ファイルを使用します。
load data
infile *
into table T_new
fields terminated by "," optionally enclosed by '"'
( A,
B,
C,
D,
ID "ID_SEQ.NEXTVAL"
)
BEGINDATA
1,1,,,
2,2,2,,
3,3,3,3,
4,4,4,4,,
,,,,,
次の出力が生成されました。
Table T_NEW, loaded from every logical record.
Insert option in effect for this table: INSERT
Column Name Position Len Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
A FIRST * , O(") CHARACTER
B NEXT * , O(") CHARACTER
C NEXT * , O(") CHARACTER
D NEXT * , O(") CHARACTER
ID NEXT * , O(") CHARACTER
SQL string for column : "ID_SEQ.NEXTVAL"
Record 1: Rejected - Error on table T_NEW, column ID.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 2: Rejected - Error on table T_NEW, column ID.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 3: Rejected - Error on table T_NEW, column ID.
Column not found before end of logical record (use TRAILING NULLCOLS)
Record 5: Discarded - all columns null.
Table T_NEW:
1 Row successfully loaded.
3 Rows not loaded due to data errors.
0 Rows not loaded because all WHEN clauses were failed.
1 Row not loaded because all fields were null.
正しくロードされた唯一の行に 5 つのコンマがあることに注意してください。ID 以外のすべてのデータ値が存在する 3 行目でも、データは読み込まれません。私が何かを見逃していない限り...
私は10gR2を使用しています。