SQL*Loaderを使用し、csvファイルの特定のデータを選択しテーブルに取り込みたいです。
CSVファイルの中身が以下の通りだとし、左から順番に
id,name,age,phoneNoというテーブル項目でidとnameがPKです。
【csv】
1,佐藤,35,000-0000-0000
2,鈴木,32,111-1111-1111
3,田中,28,222-2222-2222
3,田中,28,222-2222-2121
これをそのままSQL*Loaderで挿入しようとすると、3行目と4行目が一意制約に引っかかってしまい挿入できません。
結果として、
3,田中,28,222-2222-2121
のデータをテーブルに挿入し、上の、
3,田中,28,222-2222-2222
のデータは挿入されないようにしたいです。
どうすればそのデータのみが挿入されるようにできるでしょうか?
制御ファイルの内容は以下の通りです。
OPTIONS
(DIRECT=FALSE,ERRORS=-1)
LOAD DATA
INFILE 'C:\data.csv' BADFILE 'C:\data.bad'
APPEND
INTO TABLE EMP
FIELDS TERMINATED BY','
OPTIONALLY ENCLOSED BY'"'
TRAILING NULLCOLS
(
id CHAR,
name CHAR,
age DECIMAL EXTERNAL,
phoneNo CHAR
)
ちなみに、
APPENDではなくREPLACEでも行ってみましたが、
一つ目のデータが挿入され、PKがダブっている二つ目のデータはBADファイルに飛ばされてしまいました。
逆のことがやりたいことなのですが・・・。
回答1件
あなたの回答
tips
プレビュー