SQLLoader奇怪的行为

时间:2013-07-02 15:02:37

标签: oracle sql-loader

我正在使用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无关。约束是非空检查约束。

当我尝试将数据加载到一个特定的表时,有谁知道为什么sqlloader会检查一些不相关的表/约束?谢谢

1 个答案:

答案 0 :(得分:0)

再次遇到同样的问题,这次找到了原因。数据库中已存在已拒绝记录的数据条目(具有指定pdf位置的blob)。