ORA-01779: 无法修改与非键值保存表对应的列

博客讲述了在处理数据库时遇到ORA-01779错误,该错误源于试图修改与非键值保存表对应的列。作者通过检查并为相关表添加主键解决了问题。同时,对更新视图的操作进行了总结,强调了视图更新时需保证源数据的唯一性,以避免类似错误发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    今天中山公司让远程看下调度安排批次总是报单据已经安排批次的错误,因为是同样的源程序,做正式库就不报错,做测试库就报错了,想到的是数据的问题或者是数据库设置的问题,于是就对源程序进行调试,程序在走到datawindow的of_update()的时候报错,这个很明显,应该是更新sql报的错,于是把datawindow的sql语句拿出来,根据安排批次的业务过程,最终抽取为一句sql语句:UPDATE VIW_CK_BCARR SET ZUOY_STATE='D1',BOCI_NO='00000012' WHERE DANJ_NO ='XXXXXX';既然从pb走是报错的,所需拿出来在plsql里面跑了一把,发现报“ORA-01779: 无法修改与非键值保存表对应的列”,明显是后台的错误,自己想应该是和表键有关,于是看和VIW_CK_BCARR试图相关联的8个表,发现这八个表都没主键,可见是刚建立的库,并且建立有问题,对照正式库把每个表的主键加上后,再执行该语句成功,再前台执行批次安排,也

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值