使用背景:ORACLE 数据操作的时候,需要通过一个表去UPDATE/INSERT 更新另一个表的数据,就可以使用MERGE INTO 语法了。
这是ORACLE9i 新加入的语法。
语法:
MERGE INTO 表名 A
USING (表、视图、查询语句) B
ON (条件)
WHEN MATCHED THEN
UPDATE
SET A.col1 = B.col_val1,
A.col2 = B.col_val2
WHEN NOT MATCHED THEN
INSERT (A.column_list) VALUES (B.column_values);
示例:
1.USING(表)
MERGE INTO a08 a USING a08_temp t ON (a.a0800 = t.a0800)
WHEN MATCHED THEN UPDATE
SET a.A0000=t.A0000,a.A0801A=t.A0801A where t.imprecordid=impid
WHEN NOT MATCHED THEN
INSERT (a.A0000,a.A0800)
VALUES (t.A0000,t.A0800)
where t.imprecordid=impid;
2.USING(查询语句)
MERGE INTO table_name T1
USING (SELECT '1' AS col1,2 AS col2 FROM dual) T2
ON ( T1.col1=T2.col1)
WHEN MATCHED THEN
UPDATE SET T1.col2 = T2.col2
WHEN NOT MATCHED THEN
INSERT (T2.col1,T1.col2) VALUES(T2.col1,T2.col2);
来源:oschina
链接:https://my.oschina.net/u/2634462/blog/787958