oracle的merge into 的用法

折月煮酒 提交于 2020-03-02 19:18:29

使用背景: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);

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!