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 お