oracle的错误“ORA-01779: 无法修改与非键值保存表对应的列”怎么解决

update (
select c.boxqty a, c.qty b, c.weight c, b.fboxqty d, b.fqty e, b.fsuttle f from
(select fprodnameid, fmodelid, sum(fboxqty) fboxqty, sum(fqty) fqty, sum(fsuttle) fsuttle from table1
where fparentid = 'ab133' and fprodnameid is not null and fmodelid is not null group by fprodnameid, fmodelid) b
inner join table2 c on c.prodnameid = b.fprodnameid and c.modelid = b.fmodelid
where c.wh= '1256'
) set a = a - d, b = b - e, c = c - f;
会报错:
ORA-01779: 无法修改与非键值保存表对应的列
不用临时表可以解决吗?

第1个回答  2014-05-05
创建一个唯一索引 网上对这类说明 很多的 可以直接搜 ORA-01779追问

你可不可以就上面的代码说一下呢?创建哪个表的?

追答

刚又看了下你的SQL 像 fboxqty 这个是一个加总函数的值,这样你确定能更新么。。

本回答被提问者采纳