oracle 11g用dmp匯入資料時,顯示違反唯一約束條件不能匯入
uj5u.com熱心網友回復:
貼出具體錯誤資訊和日志uj5u.com熱心網友回復:
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
經由直接路徑由 EXPORT:V11.02.00 創建的匯出檔案
已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的匯入
. . 正在匯入表 "ASF_PERSONAL_COMMENT"
IMP-00019: 由于 ORACLE 錯誤 1 而拒絕行
IMP-00003: 遇到 ORACLE 錯誤 1
ORA-00001: 違反唯一約束條件 (ZJHQ_EGP.SYS_C0011058)
列: bc3ffc6c46f698f50146fb163ee80018
列: 0
列: 4
列: 2c9146a042b142a50142b142ceb80573
列: 劉翠霞
列: posting
列: usertask2
IMP-00019: 由于 ORACLE 錯誤 1 而拒絕行
IMP-00003: 遇到 ORACLE 錯誤 1
ORA-00001: 違反唯一約束條件 (ZJHQ_EGP.SYS_C0011058)
列: bc3ffc6c46f698f50146f9eb8d8c000d
列: 65465465
列: 2
列: 2c9146a042b142a50142b142b21700a3
列: 劉國均
列: posting
列: usertask3
IMP-00019: 由于 ORACLE 錯誤 1 而拒絕行
IMP-00003: 遇到 ORACLE 錯誤 1
ORA-00001: 違反唯一約束條件 (ZJHQ_EGP.SYS_C0011058)
列: ff80808147d709cb0147e7288bae0084
列: 請人事處、直屬機關黨委提出意見,報楊副書記審示。
列: 1
列: 2c9146a042b142a50142b142b1200054
列: 俞俊
列: receipt
列: usertask18
IMP-00019: 由于 ORACLE 錯誤 1 而拒絕行
IMP-00003: 遇到 ORACLE 錯誤 1
ORA-00001: 違反唯一約束條件 (ZJHQ_EGP.SYS_C0011058)
uj5u.com熱心網友回復:
你的這個表里是不是已經存在資料了,并且和要匯入的資料重復,導致匯入失敗?uj5u.com熱心網友回復:
這是匯入資料庫的陳述句:imp userid=zjhq_egp/oracle@localhost/orcl file="zjhq_egp.dmp" log="t_zjhq_egp.log" feedback=10000 buffer=100000000 fromuser=zjhq_egp touser=zjhq_egp grants=n ignore=y
uj5u.com熱心網友回復:
表示我新建的,不可能存在資料。
uj5u.com熱心網友回復:
網上的各種辦法都試過了,就是搞不定,分分鐘被辭退的節奏啊,求各位大神救命!!!!
uj5u.com熱心網友回復:
先把約束刪掉,匯入資料,然后檢查資料,沒問題再把約束加上應該是你匯入的資料中本身有違反約束的資料
uj5u.com熱心網友回復:
你確定原來表不存在?看看ZJHQ_EGP.SYS_C0011058這個約束是哪個欄位上的唯一約束,確定下是否出現重復資料
如果是匯入一個用戶的資料,將該用戶刪掉重建,再匯入一次試試
uj5u.com熱心網友回復:
匯入陳述句里把ignore=y去掉。我懷疑你的表沒刪干凈,建表陳述句執行失敗,錯誤被ignore=y屏蔽了uj5u.com熱心網友回復:
先禁用約束就行了。導完后再啟用。
uj5u.com熱心網友回復:
問題解決了嗎? 你新建立一個用戶再匯入試試。uj5u.com熱心網友回復:
兩種可能:1、你之前匯出了資料,進行了一段時間后,你現在匯入資料,匯入的資料和庫里原來的資料重復,因此匯入失敗;
2、匯出資料時,表沒有唯一約束,之后你加了唯一約束,再匯入違反了唯一約束,自然導不進來。
問題清楚了,你就知道怎么操作了
uj5u.com熱心網友回復:
7樓說的對,安裝7樓的思路去做吧uj5u.com熱心網友回復:
再不行的話,直接把用戶刪掉,表空間刪掉(若是專用表空間的話),再重建用戶(重建表空間)uj5u.com熱心網友回復:
9樓正解,可以那樣試試。uj5u.com熱心網友回復:
再建個用戶,匯入到新建立的用戶里面,如果有需要,在兩個用戶中做資料分析比較。uj5u.com熱心網友回復:
1、重新創建用戶,再嘗試匯入2、如果還報錯,可以考慮在exp的時候,加點東西 INDEXES=N STATISTICS=NONE ROWS=Y CONSTRAINTS=N
uj5u.com熱心網友回復:
dmp里應該包括表的創建。 把建的表都洗掉掉, 再導這多簡單。uj5u.com熱心網友回復:
你可以這樣,你原來的表空間中這個表肯定不會存在違反唯一性的問題的,你把這個表空間匯出到new.dmp中,然后新建一個表空間,把new.dmp匯入看看報不報錯,如果是匯入到不同的表空間,你得先用sql陳述句過濾掉空表和沒有記錄的表,你得用UltraEdit打開你的new.dmp修改表空間的名稱為你需要匯入到的表空間名稱,然后匯入,一般情況下不會出現問題,我試過多次~uj5u.com熱心網友回復:
我上面說的匯入到不同的表空間,那樣的操作,前提是兩個表空間的表結構完全相同,只有表空間和所有者不一樣而已~uj5u.com熱心網友回復:
思路:洗掉現有的約束條件,匯入后添加約束條件匯入時候違反了約束條件
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/85247.html
標籤:基礎和管理
