sqlloader を使用して、PDF ファイルを BLOB としてデータベースにインポートしています。制御ファイルは次のとおりです。
LOAD DATA
INFILE *
INTO TABLE pdf_files
APPEND
FIELDS TERMINATED BY ','
(
pdfid char(20),
pdf_year char(4),
pdf_province char(2),
pdf_load_location char(100),
pdf_file lobfile (pdf_load_location) TERMINATED BY EOF
)
BEGINDATA
test-form-en,2012,QC,/home/oracle/TestForms/forms/en/test-form.pdf,
次に、ログにエラーメッセージが表示されました:
Record 1: Rejected - Error on table PDF_FILES.
ORA-00001: unique constraint (SCOTT.SYS_C0011439) violated
次のように制約SCOTT.SYS_C0011439を確認しました
select * from user_constraints where constraint_name='SYS_C0011439';
次に、制約SYS_C0011439が実際には無関係なテーブル「T2032」にあることがわかりました。このテーブルは、データをインポートしたいテーブル pdf_files とは関係ありません。そして、制約は not null チェック制約です。
特定の1つのテーブルだけにデータをロードしようとしたときに、sqlloaderが無関係なテーブル/制約をチェックする理由を知っている人はいますか? ありがとう