RECNUMを使用するとスキップしたレコードや不良レコード、破棄レコードも1レコードとしてカウントされる。
ロード先のテーブル定義
名前       NULL?    型
--------- -------- ----------------------------
REC_NUM   NOT NULL NUMBER
NAME               VARCHAR2(100)
コントロールファイルの内容
論理行番号を格納したいカラムにRECNUMパラメータを使用する。OPTIONS (SKIP=1)
LOAD DATA
CHARACTERSET 'AL32UTF8'
INFILE 'input.csv' "str '\n'"
BADFILE 'input.bad'
DISCARDFILE 'input.dsc'
TRUNCATE
INTO TABLE HOGE
FIELDS TERMINATED BY ',' 
(
REC_NUM RECNUM,
NAME OPTIONALLY ENCLOSED BY '"' 
)
CSVファイルの内容
タイトル行あり、不正なレコード(空行)ありのファイル。name
あ
い
う
え
お
実行結果の確認
以下のコマンドで、上のCSVファイルを取り込みます。sqlldr 接続先情報 control=input.ctl
スキップしたヘッダー行や不正なレコードの空行もレコード数としてカウントアップされているのが分かる。
1* select * from hoge
REC_NUM    NAME
---------- ------------------------------
2          あ
3          い
5          う
6          え
7          お
