Oracle Merge语法使用记录
说来惭愧,因为不会写表与表的Update语句才想起使用Merge语句的。
(1) 使用Merge语句进行Insert操作
/*---通过中间表Table_B向Table_A表Insert一些新数据,注意Table_A和Table_B都必须有主键,至于是单独主键还是复合主键可根据时间情况拟定---*/
merge into Table_A a
using Table_B b on (a.Table_A_ID = b.Table_B_ID)
when NOT MATCHED then
insert
values (b.Table_A_ID,b.Table_A_NAME,...etc)
(2) 使用Merge语句进行Update操作
/*---通过中间表Table_B更新Table_A中的某些值---*/
merge into Table_A a
using Table_B b on (a.Table_A_ID = b.Table_B_ID)
when MATCHED then
update
set a.NAME=b.NAME,a.GENDER=b.GENDER,...etc
(3) 合并使用
帮助文档上介绍可以进行判断,即插入和修改可以写在一段语句里面执行。
目前实际工作中还未遇到这种情况,所以还没有写过。等以后有机会操作过后再补充。
2013-02-20