SQL*Loaderのコントロールファイル書き方の一例
LOAD DATA
INFILE 'ファイル名'
BADFILE 'ファイル名.bad'
CONTINUEIF LAST <> '"'
INTO TABLE テーブル名
TRUNCATE
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS(
カラム1 DECIMAL EXTERNAL(10),
カラム2CHAR(100),
カラム3 CHAR(20000),
カラム4 "TO_DATE(:カラム4, 'YYYY/MM/DD HH24:MI:SS')"
)
シェルスクリプト側で
sqlldr 接続先のDB control=コントロールファイル名 skip=1 log=ログファイル名
SQL*Loaderはログファイルを同じファイル内に追記することはできず、
上書いてしまう。
SQL*Loader側でDECIMAL EXTERNALの方はOracleでいうとNumber型にあたる。
CHAR(20000)の箇所はOracleではCLOB型にしています。
上記のは私が実際に使った一例です。