您的位置:首页 > 数据库 > Oracle

关于oracle中merge操作

2013-11-18 10:21 232 查看
问题:merge语句在9i上报缺少关键字的错误,在10以上没问题;

语句:

merge into a
using b on (a.id=b.id)
when MATCHED then
update set a.name=b.name
where b.type=0
when NOT MATCHED then
insert(id,name)
values(b.id,b.name)
where b.type=0;

原因:在9i上操作是不能带where条件的,10才增加了条件操作;

同时如果使用9i版本时,matched和not matched只有一个的话也会报错,如:

merge into a
using b on (a.id=b.id)
when MATCHED then
update set a.name=b.name;


如果使用10g,则顺利执行。

另外:10g新增了delete操作。

注意:on关键字后面的括号不能少,不然会报错
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: