SQL*Loaderのレコード終端文字変更
ところが、今度は、フィールドに改行を含んだデータが存在するではないですか!!
「やけにエラーが多いんですけど・・・」(リーダー)
そりゃ、そうでしょう。フィールド値に改行が入れば、そこでレコードが終了とSQL*Loaderは判断し、改行後は項目数が足りなくて、エラーを出しますよ。
これは想定外でした。
と言うことで、レコードの終端を変更する設定をすることに。
------------ 以下 ctlファイル内容 -------------------------
-- SQL*Loader用制御ファイル開始
LOAD DATA
-- CSVファイル(終端文字の指定)
INFILE 'SampleData.csv' "str '@END-REC@'"
-- 格納するテーブル(テーブル内のデータを空にしてから格納)
INTO TABLE SampleTable TRUNCATE
-- 区切り文字の指定
FIELDS TERMINATED BY X'09'
-- 囲み文字の指定
OPTIONALLY ENCLOSED BY '"'
-- カラムの列挙
(
err1_id ,
err2_id ,
err1msg ,
err2code ,
err2msg
)
------------ ctlファイル内容ここまで ----------------------
------------- SampleData.csvここから ----------------------
"001","AAA","ああああ","1234","AA1"@END-REC@
"002","BBB","いい
いい","5678","BB2"@END-REC@
"003","CCC","うううう","9012","CC2"
------------- SampleData.csvここまで ----------------------
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/25 09:16