merge into update操作时能不能批量更新

我今天在用mergeintoupdate操作时批量更新报ora-30926无法在源表中获得一组稳定的数据具体sqlififlage=1then--dbms_output.... 我今天在用 merge into update 操作时批量更新 报ora-30926 无法在源表中获得一组稳定的数据
具体sql

if iflage = 1 then
-- dbms_output.put_line(iflage);
merge into res_fourtwoproject res
using (select * from CORRECTLY_RES_FOURTWOPROJECT s where s.batch=p_batch) c --按照某个条件查询数据集
on (res.IYEAR=years and res.SWEEKNUM = weeks and res.SSITENAME = c.SSITENAME)
when matched then --存在就更新
update set
res.SCOMPANYNAME=c.SCOMPANYNAME,
res.SLISTTYPE = c.SLISTTYPE,res.STHREETOONEUNIQUE=c.STHREETOONEUNIQUE,
--res.STHREETOONEUNIQUE=c.STHREETOONEUNIQUE,
求大神救我,跪谢
展开
 我来答
百度网友5a49f8c
2014-09-29
知道答主
回答量:1
采纳率:0%
帮助的人:2.2万
展开全部
可以批量更新的,但是你要保证更新的值是唯一的:合并的两个表以“res.IYEAR=years and res.SWEEKNUM = weeks and res.SSITENAME = c.SSITENAME”这个条件关联应该要一一对应才能更新,不然就会报错

建议查出这两个表里的数据存在多条,然后groupby一下,保证一一对应关系
追问
using (select * from CORRECTLY_RES_FOURTWOPROJECT s where s.batch=p_batch)  这条语句如果查出来的是个集合就有问题,如果是单条数据的话就没问题
撒娇地块路飞
2014-09-28 · TA获得超过618个赞
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:139万
展开全部
这个事什么啊,我都看不懂啊
追问
merge into  不知道?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式