Oracle中merge into使用

merge into主要实现update or insert的操作

格式如下:
merge into tablename [tablerename]

using(select query) [queryrename] 

on(conditon1 [and condition2...])

when match then (data control sentence1)

when not match then (data control sentence)

解释一下merge into 的格式:

(1)首先确定要对哪个表进行insert 或者 update操作

(2)可以给表命名别名

(3)using语句中是一个查询语句,将查询结果出来,其中[queryrename]为查询操作的别名

(4)将using语句中查询出来的结果逐条比较,是否满足condition的条件

(5)若匹配成功,执行语句1;若匹配失败,执行语句2;若查询语句没有查出结果,不执行后续的match/not match操作。

实例如下:

MERGE INTO SDBMGR.FUL_DMDUNIT FDMD
USING (SELECT PRODUCTID,
                             UPC,
              FROM SDBMGR.HLD_DMDUNIT) HDMD
              ON (FDMD.PRODUCTID = HDMD.PRODUCTID)
WHEN MATCHED THEN
  UPDATE
     SET FDMD.UPC         = HDMD.UPC,
             FDMD.LASTUPDATED = SYSDATE
WHEN NOT MATCHED THEN
  INSERT
    (FDMD.PRODUCTID,
     FDMD.UPC,
     FDMD.IMPORTTIME)
  VALUES
    (HDMD.PRODUCTID,
     HDMD.UPC,
     HDMD.IMPORTTIME);

猜你喜欢

转载自blog.csdn.net/szt292069892/article/details/81240360