SQL*Loader
SQL*Loader の使い方 - オラクル・Oracleをマスターするための基本と仕組み
SQL*Loader制御ファイル・リファレンス
コマンドラインで実行
sqlldr userid="username/password" control='ldrSample.ctl' log=test.log badfile=test.bad
コントロールファイル<ldrSample.ctl>
LOAD DATA
INFILE 'TEST_DATA' "FIX 120"
PRESERVE BLANKS
INTO TABLE TEST.LOAD_TBL TRUNCATE
WHEN COL1 = 'CODE01'
(
COL1 POSITION(1:5) CHAR "RTRIM(:COL1)",
COL2 POSITION(6:10) CHAR "RTRIM(:COL2)",
COL3 POSITION(11:13) ZONED(3) NULLIF COL3=BLANKS,
COL4 POSITION(14:18) DECIMAL(9,1) NULLIF COL4=BLANKS, <-パック10新数
COL5 POSITION(19:19) CHAR "RTRIM(:COL5)",
COL6 POSITION(20:29) CHAR "RTRIM(:COL6)",
COL7 CHAR "SUBSTRB(:COL1, 1, 3) || SUBSTRB(:COL6, 3, 5)"
)
※WHEN句は = <> AND のみ使用可。OR LIKE などは使用できないので注意
※バッドファイルはロードエラーのレコードがそのまま出力される