ORA-02298: 无法验证 (约束)提示未找到父项关键字的解决办法_oracle

--在用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: 无法验证 (约束)提示未找到父项关键字的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索未找到父项关键字、未找到from关键字、sql 未找到from关键字、未找到父类关键字、未找到form关键字,以便于您获取更多的相关知识。

时间: 2024-08-29 01:52:24

ORA-02298: 无法验证 (约束)提示未找到父项关键字的解决办法_oracle的相关文章

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

今天在改代码的时候,发现报错如下: Hibernate: insert into M_CUS_MARKETING_RELATIONSHIP (CRM_CORP_TYPE_ID, M_ID, M_CUSM_ID) values (?, ?, ?) 四月 13, 2016 2:52:33 下午 org.hibernate.util.JDBCExceptionReporter logExceptions 警告: SQL Error: 2291, SQLState: 23000 四月 13, 2016

IIS提示未找到提供程序

  Win7系统 IIS 调试ASP(aspcmsgbk25) 错误号:3706 提示 "未找到提供程序 该程序可能未正确安装"解决办法 . 有两种报错形式 一.错误号:3706 错误描述:未找到提供程序.该程序可能未正确安装. 二."ADODB.Connection 错误 '800a0e7a' 未找到提供程序.该程序可能未正确安装. " 错误的原因在于在64位系统中,IIS7应用程序池默认没有启用32位程序,也就是说如果使用的是64位操作系统,而没有64位的Jet

hadoop-win7下cygwin执行ssh-host-config后提示未找到命令,怎么解决?

问题描述 win7下cygwin执行ssh-host-config后提示未找到命令,怎么解决? 已经是用管理员身份打开cygwin了! 解决方案 这个和你的windows 7和cygwin没关系,你的主机上是否有对应的服务和命令.

Ueditor上传图片提示未找到上传文件-求大神帮助

问题描述 Ueditor上传图片提示未找到上传文件-求大神帮助 解决方案 参考:http://blog.sina.com.cn/s/blog_63b470180102ux4a.html

windows-安装Windows 2008 R2 提示未找到任何设备驱动

问题描述 安装Windows 2008 R2 提示未找到任何设备驱动 最近刚组装了一台新机器,华硕B85的主板,用UtralISO制作了USB的安装盘(USB 是闪迪 3.0) 从U盘启动电脑 进入到安装界面,点击"现在就安装"--提示未找到任何设备的驱动 百度的一些方法我试过,不管用,请大神相助. 小弟新来,还没C币,希望大神别嫌弃.好人新年走鸿运,一生平安. 解决方案 没有认到硬盘驱动,在你的bios中将sata设置为兼容模式. 解决方案二: 具体的设置方式你可以看下随机的说明书中

tesseractocr3.04.00-TesseractOCR3.04.00中文识别提示未找到参数allow_blob_division

问题描述 TesseractOCR3.04.00中文识别提示未找到参数allow_blob_division 操作如图. 请问这是什么原因引起? 怎么解决? 识别英文是没问题的,只要字号大小合适. 解决方案 先要编译出设置.combine_tessdata -e tessdata/chi_sim.traineddata chi_sim.config

XP系统提示“未能创建视频预览”的解决办法

  XP系统提示"未能创建视频预览"的解决办法          方案一:注册相关文件并检查是否损坏或丢失 1.单击"开始",单击"所有程序",单击"附件",单击"命令提示符"; 2.打开的命令提示符窗口依次执行以下命令,按回车键; regsvr32 Proppage.dll regsvr32 directSpy.dll regsvr32 Quartz.dll 3.弹出"XXXX中的DllRegi

win8 远程桌面时提示凭证不工作问题的终极解决办法

原文 win8 远程桌面时提示凭证不工作问题的终极解决办法 环境说明 远程办公电脑(放置于公司.自用办公电脑.win8系统) 远程连接客户机(放置于家中.家庭日常所用.win8系统) 故障现象      最近在使用远程桌面连接公司的办公电脑时,突然发现win8系统总是无法连接成功,提示"你的凭证不工作",使用其他人的win7的连接也是出现这个问题.      有问题上百度,可百度好久发现千篇一律的做法基本如下所示      一,策略修改法,    1.在"开始"窗口

Win7系统 IIS 调试ASP(aspcmsgbk25) 错误号:3706 提示 “未找到提供程序 该程序可能未正确安装”解决办法

有两种报错形式 一.错误号:3706  错误描述:未找到提供程序.该程序可能未正确安装. 二."ADODB.Connection 错误 '800a0e7a' 未找到提供程序.该程序可能未正确安装. " 错误的原因在于在64位系统中,IIS7应用程序池默认没有启用32位程序,也就是说如果使用的是64位操作系统,而没有64位的Jet 4.0驱动程序,那么就要在IIS7中启用32位程序.​解决方法如下: Internet信息服务(IIS)管理器 - '应用程序池' - 右边操作中选择'设置应