2012-12-21 85 views
1

我在oracle10g中使用sql * loader的幫助,將數據從平面文件加載到表中。Oracle 10g中的唯一鍵約束違規?

但加載時顯示下面的錯誤。

*

ERROR at line 1: 
ORA-00001: unique constraint (SANFORDINTEGRATOR.SUBSCRIBER_ID_PK) violated 
ORA-06512: at "SANFORDINTEGRATOR.DATAMOVE", line 26 
ORA-06512: at line 1 

我怎樣才能解決這個問題。

在此先感謝

+0

哦親愛的......你的數據庫想要告訴你,你從平面文件中讀取的ID已經存在於你的數據庫中......並且因爲它需要是唯一的,所以你會得到PK違規。因此,無論是在flatfile中修復它,還是先從數據庫中刪除重複項...如果您依賴於其他地方的ID,這將會很有趣... – Najzero

回答

2

表SANFORDINTEGRATOR有需要的列(可能SUBSCRIBER_ID)具有獨特的價值(可能是因爲它的主鍵)的約束。你顯然正在加載這個列沒有唯一值的數據。所以Oracle拒絕它。

要修復它,請確保SUBSCRIBER_ID是唯一的(既包含文件又包含表中已有的數據)。

+0

我有subscrier id列的主鍵,但我必須加載平面文件數據沒有禁用pk constaring – sentil

+0

我沒有說你應該禁用約束。你的文件是否包含SUBSCRIBER_IDs?如果是的話,他們爲什麼不是唯一的? – Codo

+0

謝謝代碼回覆我解決了它,因爲客戶發送錯誤的文件給我們 – sentil

相關問題