• ORA-02298: 無法驗證 (約束)提示未找到父項關鍵字的解決辦法

     更新時間:2016年09月21日 10:00:52   作者:Acamy  
    這篇文章主要介紹了ORA-02298: 無法驗證 (約束)提示未找到父項關鍵字的解決辦法,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下

    --在用PL/SQL導入表數據的時候報錯 ORA-02298: 無法驗證 (PNET.POST_CLOB_FK) - 未找到父項關鍵字

    --發現是啟用外鍵約束時報的錯
    alter table DM_VOLREV enable constraint VR_VOLID_FK;

    /*原因分析:

    你要插入的表A里,有外鍵連接到另一個表B的主鍵,你在表A的外鍵列插入的值,在表B的主鍵列找不到就不能插入。
    主要看兩表中的數據是否一致,從表中要關聯外鍵的字段中的數據必須包含在主表相關字段的數據內。

    處理的方法有:

    1> 先不驗證已有數據的CONSTRANT,加上參數NOVALIDATE.*/
    ALTER TABLE PN_POST ADD CONSTRAINT POST_CLOB_FK FOREIGN KEY (POST_BODY_ID) REFERENCES PN_POST_BODY_CLOB (OBJECT_ID) NOVALIDATE;
    --2>首先查看兩個表對應起來的數據有多少
    select count(*) from dm_volrev t,DM_VOLID k where t.vr_volid = k.vi_volid;
    --再分別查看單獨的數據,發現外鍵表多了一行
    select count(*) from dm_volrev t;
    select count(*) from DM_VOLID k;
    -找到多的行并刪除
    select t.vr_volid from dm_volrev t where t.vr_volid not in (select k.vi_volid from DM_VOLID k);
    delete from dm_volrev t where t.vr_volid = 479908;
    --直接重新執行啟用外鍵的語句,或者刪除之前的外鍵創建新的外鍵
    alter table DM_VOLREV drop constraint VR_VOLID_FK;
    ALTER TABLE DM_VOLREV ADD CONSTRAINT VR_VOLID_FK foreign KEY (VR_VOLID) references DM_VOLID(VI_VOLID) VALIDATE;
    
    
    /*啟用約束:
    enable( validate) :啟用約束,創建索引,對已有及新加入的數據執行約束.
    enable novalidate :啟用約束,創建索引,僅對新加入的數據強制執行約束,而不管表中的現有數據.
    
    禁用約束:
    disable( novalidate):關閉約束,刪除索引,可以對約束列的數據進行修改等操作.
    disable validate :關閉約束,刪除索引,不能對表進行 插入/更新/刪除等操作.*/

    以上所述是小編給大家介紹的ORA-02298: 無法驗證 (約束)提示未找到父項關鍵字的解決辦法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

    相關文章

    • 淺談oracle rac和分布式數據庫的區別

      淺談oracle rac和分布式數據庫的區別

      這篇文章主要介紹了oracle rac和分布式數據庫的區別的相關內容,小編覺得挺不錯的,這里給大家分享下,需要的朋友可以參考。
      2017-10-10
    • Orcle的package中訪問其它Schema的表報錯ORA-00942解決方法

      Orcle的package中訪問其它Schema的表報錯ORA-00942解決方法

      package要訪問其它Schema的表,但編譯報錯ORA-00942,經過搜索了一下找到了解決方法下面與大家分享下
      2013-05-05
    • Oracle新建用戶、角色,授權,建表空間的sql語句

      Oracle新建用戶、角色,授權,建表空間的sql語句

      Oracle創建用戶操作相信大家都不陌生,下面就為您介紹Oracle創建用戶的語法的相關知識,希望對您學習Oracle創建用戶的方面能有所幫助
      2012-07-07
    • oracle中的decode的使用介紹

      oracle中的decode的使用介紹

      這篇文章主要介紹了oracle中的decode函數的一些使用小技巧,需要的朋友可以參考下
      2013-09-09
    • Oracle的四道經典面試題分享

      Oracle的四道經典面試題分享

      這篇文章主要給大家介紹了關于Oracle的四道經典面試題的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Oracle具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
      2019-05-05
    • Oracle硬解析和軟解析的區別分析

      Oracle硬解析和軟解析的區別分析

      我們都知道在Oracle中每條SQL語句在執行之前都需要經過解析,這里面又分為軟解析和硬解析。在Oracle中存在兩種類型的SQL語句,一類為 DDL語句(數據定義語言),就是每次執行都需要進行硬解析。還有一類就是DML語句,他們會根據情況選擇要么進行硬解析,要么進行軟解析。
      2014-08-08
    • oracle執行cmd的實現方法

      oracle執行cmd的實現方法

      裝了一個oracle db11g,于是想試一下網上流傳的在sqlplus中執行cmd的一些命令,也不知怎么的,沒一個好用的,可能是網上轉來轉去的轉錯了.
      2009-04-04
    • Oracle以逗號分隔的字符串拆分為多行數據實例詳解

      Oracle以逗號分隔的字符串拆分為多行數據實例詳解

      做多選功能時為了簡便,會在某個字段中存儲多個值,保存時雖然省事,但后續的查詢統計時還需要拆分數據才行,因此這時需要將字段內的值分成多行以便后續使用,這篇文章主要給大家介紹了關于Oracle以逗號分隔的字符串拆分為多行數據的相關資料,需要的朋友可以參考下
      2021-07-07
    • ORACLE常見錯誤代碼的分析與解決(一)

      ORACLE常見錯誤代碼的分析與解決(一)

      ORACLE常見錯誤代碼的分析與解決(一)...
      2007-03-03
    • Oracle 存儲過程加密方法

      Oracle 存儲過程加密方法

      Oracle 存儲過程加密方法,需要的朋友可以參考下。
      2009-10-10

    最新評論

    美丽人妻被按摩中出中文字幕