merge into 语句是oracle中insert 与update语句的结合,可以同时实现update和insert的功能。

示例

MERGE INTO surface1 a
USING surface2 b
ON (两个表的关联条件)
WHEN MATCHED THEN
  UPDATE SET a.x=b.x
WHEN NOT MATCHED THEN
  INSERT VALUES (b.x,b.xx);

a 表为目标表(要插入后修改数据的表) b表为源表(提供数据的表)

判断B表和A表是否满足ON中条件,如果满足则用B表去更新A表,如果不满足,则将B表数据插入A表

解析

INTO 子句:用于指定你所update或者Insert目的表。
USING 子句:用于指定你要update或者Insert的记录的来源,它可能是一个表,视图,子查询。
ON :用于目的表和源表(视图,子查询)的关联,如果匹配(或存在),则更新,否则插入。
UPDATE :用于写update语句
INSERT: 用于写insert语句

具体示例参考链接:
https://www.cnblogs.com/kongxc/p/9237941.html
https://blog.csdn.net/naomi_qing/article/details/70785702