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性能究极优化(Oracle 性能优化)

    Oracle性能究极优化(Oracle 性能优化)

    Linux Journal 发表了一篇优化 Oracle 数据库的文章,感觉十分的有用。简要介绍其摘要和大家共同分享 Linux 在企业级数据库上应用
    2007-03-03
  • oracle 集合

    oracle 集合

    pl/sql预定义了在varray 和嵌套表实例上进行调用的方法。这些方法能在集合上执行一定的功能。
    2009-06-06
  • Oracle监听注册的实现

    Oracle监听注册的实现

    Oracle数据库的注册监听功能是Oracle数据库管理的一个重要组成部分,它允许数据库实例接收来自客户端请求,并且可以自动恢复数据库服务,感兴趣的可以了解一下
    2023-12-12
  • 用Mimer Validator检查SQL查询

    用Mimer Validator检查SQL查询

    本文主要介绍了如何用Mimer Validator检查SQL查询的技巧方法和步骤。
    2009-04-04
  • 在命令行下进行Oracle用户解锁的语句

    在命令行下进行Oracle用户解锁的语句

    Oracle用户解锁操作并没您想象的那么复杂,这里通过在命令行下的操作轻松帮您完成Oracle用户解锁
    2013-06-06
  • win10下oracle 11g安装图文教程

    win10下oracle 11g安装图文教程

    这篇文章主要为大家详细介绍了win10下oracle11g安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • oracle11g卸载完整图文教程

    oracle11g卸载完整图文教程

    这篇文章主要为大家详细介绍了oracle11g卸载完整图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Oracle监听器被优化大师挂掉后的完美解决方法

    Oracle监听器被优化大师挂掉后的完美解决方法

    这篇文章主要介绍了Oracle监听器被优化大师挂掉后的完美解决方法,需要的朋友可以参考下
    2017-08-08
  • Oracle START WITH 递归语句的使用方法

    Oracle START WITH 递归语句的使用方法

    Oracle数据库中的START WITH语句经常与CONNECT BY子句一起使用,以实现对层次型数据的查询,本文主要介绍了Oracle START WITH 递归语句的使用方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Oracle数据库的实例/表空间/用户/表之间关系简单讲解

    Oracle数据库的实例/表空间/用户/表之间关系简单讲解

    这篇文章主要介绍了Oracle数据库的实例/表空间/用户/表之间关系简单讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论