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 などは使用できないので注意
※バッドファイルはロードエラーのレコードがそのまま出力される