MERGE Into

 MERGE INTO CS_CL_DOME_IMG_PRT X
      USING (SELECT A.OID,
                    A.G_NO,
                    C.G_CODE,
                    C.G_NAME                 
               FROM A) Z
      ON (X.CL_OID = Z.OID AND X.G_NO = Z.G_NO)
      WHEN MATCHED THEN
        UPDATE
           SET X.HS_CODE     = Z.G_CODE,
               X.G_NAME      = Z.G_NAME,
               X.G_MODEL     = Z.ELEMENT             
      WHEN NOT MATCHED THEN
        INSERT
          (CL_OID,
           G_NO,
           HS_CODE,
           G_NAME,
           G_MODEL)
        VALUES
          (Z.OID,
           Z.G_NO,
           Z.G_CODE,
           Z.G_NAME,
           Z.ELEMENT);
           COMMIT;
语句

MERGE Into 表A 别名Z

using(查询语句(可以是关联出来的)) 别名X

on (Z.字段=X.字段 两个表关系条件)

WHEN MATCHED THEN

   UPDATE

     ……

    WHEN NOT MATCHED THEN
        INSERT ……

注意:有的时候执行 MERGE Into 的存储过程看到假死,或报出:无法更新ON子句中引用的列

原因:update set里有关联的字段。

要求:update 里不能更新关联的字段。

posted @ 2015-02-04 13:48  丁焕轩  阅读(449)  评论(0编辑  收藏  举报