在一次脚本执行时,因为用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的值转换为唯一值。
oracle-Merge into的使用
最新推荐文章于 2024-06-28 13:19:08 发布