oracle-Merge into的使用

在一次脚本执行时,因为用update/insert有点慢,就在网上找了下,Merge into的脚本写法,这里记录下:
语法:
MERGE INTO table_name alias1
USING (table|view|sub_query) alias2
ON (join condition)
WHEN MATCHED THEN
UPDATE table_name(在脚本里不用写这个tablename)
SET col1 = col_val1,
col2 = col_val2
WHEN NOT MATCHED THEN
INSERT (column_list) VALUES (column_values);
但是在执行时碰到了一个错误
这里写图片描述
因为在merge into时需要设定一个key值,会根据这个key值来决定merge into的操作(update还是insert into),所以要求在merge时这个key值是唯一的。所以要先从临时表中选出全部数据而且key值是唯一的。因此我们使用merge into要注意:源表匹配列中不能有重复值,否则无法匹配
来自:http://blog.itpub.net/29900383/viewspace-1284128/
http://peijunlin2008.iteye.com/blog/1275081
所以要先将alias2的值转换为唯一值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值