Oracle存储过程修改语句

CREATEORREPLACEPROCEDUREpro2(mycyearINCHAR,mycmonthINCHAR)ISBEGINupdate(selectw.f_22,... CREATE OR REPLACE PROCEDURE pro2 ( mycyear IN CHAR, mycmonth IN CHAR ) IS BEGIN update (select w.f_22,w.f_28, a.f_22 as f22,a.f_28 as f28 from wa_data w,attendance a where a.cyear=mycyear and a.cperiod=mycmonth) set f_22=f22,f_28=f28; END pro2;执行以上语句时,出现“ORA-01779: 无法修改与非键值保存表对应的列”大家帮忙看一下。 展开
 我来答
hongyaofu
2012-04-19 · TA获得超过1088个赞
知道大有可为答主
回答量:1227
采纳率:87%
帮助的人:527万
展开全部
ORA-01779: 无法修改与非键值保存表对应的列
你这是更新视图(而且是临时视图),一般情况下视图都是只读的,不容许修改的。
应该改成:
update wa_data a set (f_22,f_28 ) = (select f_22,f_28 from attendance where cyear=a.mycyear and cperiod=a.mycmonth ) ;
就没有问题了。
tianhxk
2012-04-19 · TA获得超过422个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:281万
展开全部
你写的语句的算法根本让人看不懂。。你想更新哪张表,更新的规则是什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2efdb15
2012-04-19 · 超过34用户采纳过TA的回答
知道答主
回答量:147
采纳率:0%
帮助的人:91万
展开全部
可能是列做了什么限制了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式