--在用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: 无法验证 (约束) - 未找到父项关键字 解决办法的更多相关文章

  1. ORA-02298: 无法验证 (PNET.POST_CLOB_FK) - 未找到父项关键字

    在运行以下语句的时候,报错如下: ALTER TABLE PN_POST ADD CONSTRAINT POST_CLOB_FK FOREIGN KEY (POST_BODY_ID) REFERENC ...

  2. Oracle添加记录的时候报错:违反完整性约束,未找到父项关键字

    今天需要向一个没有接触过的一个Oracle数据库中添加一条记录,执行报错: 分析: 报错的根本原因:未找到父项关键字的原因是因为你在保存对象的时候缺失关联对象. 问题的解决思路:先保存关联对象后再保存 ...

  3. ORA-02291: 违反完整约束条件 - 未找到父项关键字

    由于大意,在设置数据库表时将外键字段的类型与外键表的主键字段类型不一致,造成此错误. 我的情况是: 1.将一个为number(10)的外键设置成了number(19) 2.将外键字段对应的主键表设置成 ...

  4. ### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-02291: 违反完整约束条件 (SSM.SYS_C0011830) - 未找到父项关键字

    在向Oracle数据库里面插入数据时发生了以下错误 ; ]; ORA-: 违反完整约束条件 (SSM.SYS_C0011830) - 未找到父项关键字 ; nested exception : 违反完 ...

  5. ORA-02291: 违反完整约束条件 - 未找到父项关键字问题解决

    ORA-02291: 违反完整约束条件 - 未找到父项关键字问题解决 总体说说可能出现的原因: 情况场景: 表A中有个字段是外键,关联了表B中的某字段,再往表A插入数据时,会出现这种情况. 可能原因: ...

  6. 设置主外键时 ORA-02298: 无法验证 - 未找到父项关键字 --NOVALIDATE;

    主要原因是: 在添加CONSTRAINT的时候,默认是需要VALIDATE表中的已有数据的. 你要插入的表A里,有外键连接到另一个表B的主键,你在表A的外键列插入的值,在表B的主键列找不到就不能插入. ...

  7. 违反完整约束条件 (XXX) - 未找到父项关键字

    这个主要是A表的一个字段主键做了B表的外键,往B表插入数据就会出现这种情况 今天其他总结: detached entity passed to persist 错误的引起的原因和解决办法 这个主要是因 ...

  8. div宽度设置width:100%后再设置padding或margin超出父元素的解决办法

    div宽度设置width:100%后再设置padding或margin超出父元素的解决办法 一.总结 一句话总结:直接加上box-sizing:border-box;即可解决上述问题. 1.box-s ...

  9. 微信小程序-没有找到 node_modules 目录的解决办法

    初次在微信开发者工具构建npm 没有找到 node_modules 目录的解决办法 第一步:设置-->项目设置-->使用npm模块 第二步:右键目录下miniprogram-->终端 ...

随机推荐

  1. linux日常管理-系统进程查看工具-ps

    查看系统有那些进程 命令有ps aux 和命令 ps -elf USER  哪个用户使用了这个进程 PID  进程的id %CPU 占用CPU的百分比 %MEM 占用内存的百分比 VSZ 虚拟内存的大 ...

  2. angularJS中自定义指令

    学习了angularJS一周,但是大部分时间被自定义指令占用了.博主表示自学互联网好心塞的,发现问题的视觉很狭窄,这比解决问题要更难.这篇文章首先介绍了自定义,然后介绍了在使用自定义指令遇到的问题. ...

  3. C#调用ODBC连接SQL Server数据库的存储过程

    OdbcConnection con = new OdbcConnection("Driver={SQL Server};server=PC-200201070359;uid=sa;pwd= ...

  4. 请定义一个宏,比较两个数的a、b的大小,不能使用大于、小于、if语句

    请定义一个宏,比较两个数的a.b的大小,不能使用大于.小于.if语句 方法一:    #define max(a,b) ((((long)((a)-(b)))&0x80000000)?(b): ...

  5. java数据结构读书笔记--引论

    1 递归简论 需求:求出f(x)=2f(x-1)+x²的值.满足f(0)=0 public class Recursion { // 需求: 求出f(x)=2f(x-1)+x²的值.满足f(0)=0 ...

  6. elasticsearch2.x插件之一:bigdesk

    bigdesk是elasticsearch的一个集群监控工具,可以通过它来查看es集群的各种状态,如:cpu.内存使用情况,索引数据.搜索情况,http连接数等. 可用项目git地址:https:// ...

  7. MySql中的视图的概念及应用

    视图的基本概念 视图是从一个或几个基本表(或者视图)导出的表.它与基本表不同,是一个虚表. 数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中.所以基本表中的数据发生变化, ...

  8. c# 创建缩略图

    /// <summary> /// 创建缩略图 /// </summary> /// <param name="srcFileName">< ...

  9. p2921 Trick or Treat on the Farm

    传送门 题目 每年万圣节,威斯康星的奶牛们都要打扮一番,出门在农场的N个牛棚里转 悠,来采集糖果.她们每走到一个未曾经过的牛棚,就会采集这个棚里的1颗糖果.农场不大,所以约翰要想尽法子让奶牛们得到快乐 ...

  10. 阿里云 Ubuntu 服务器 安装 pymssql

    我是按照官方的说明文档: http://www.pymssql.org/en/stable/intro.html#getting-started 一步一步操作的,但是没有成功,在网上搜索了很多信息,最 ...