首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 8i 遷移至 10g 遇 ORA-00001 衝突解決

     編輯:Oracle 資料庫基礎

遷移環境

項目來源目標
OSSun Solaris 8IBM AIX 5.2
DB Version8.1.7.410.1.0.5
NLS_CHARACTERSETZHS16GBKZHS16GBK

方式:User-level Exp/Imp。

匯入錯誤

IMP-00017: ... ORACLE error 1:
"BEGIN dbms_job.isubmit(job=>1, what=>'esupport.P_TM_close2;', ...)"
ORA-00001: unique constraint (SYS.I_JOB_JOB) violated

根因分析

  • 來源 DB:使用者 XXXX 佔用 JOB ID = 1 (esupport.P_TM_close2)
  • 目標 DB (10g):**SYSMAN 內建佔用 JOB ID = 1** (EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS)
  • 匯入時嘗試建立相同 Job ID 導致主鍵衝突

解決方案

  1. 查詢來源/目標 DBA_JOBS 確認衝突
  2. 手動以新 Job ID 重建:
    BEGIN
      dbms_job.isubmit(job=>23, what=>'esupport.P_TM_close2;',
        next_date=>to_date('4000-01-01:00:00:00','YYYY-MM-DD:HH24:MI:SS'),
        interval=>'sysdate +(1/24)', no_parse=>true);
    END;
    -- 驗證無誤後可移除測試 job
    BEGIN dbms_job.remove(23); END;
  3. 或參考 Metalink Note 336206.995 預先刪除衝突 Job 再匯入

後續檢查

完成遷移後需驗證 DB Link、TNSNAMES、Job、MQ 等相依物件設定。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved