2013-07-02 33 views
0

我正在使用sqlloader導入PDF文件到數據庫作爲斑點。控制文件是如下SQLLoader奇怪的行爲

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會得到一些不相關的表/約束?謝謝

+0

這可能是因爲一個外鍵 能否請您提供完整的輸出: SELECT * FROM USER_CONSTRAINTS其中constraint_name命令=「SYS_C0011439」; – Arnab

回答

0

再次遇到同樣的問題,這次找到了原因。數據庫中已經有一個數據條目(具有指定pdf位置的數據塊)用於被拒絕的記錄。