问题: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关键字后面的括号不能少,不然会报错