首页 > 数据库技术 > 详细

merge into在oracle10g和oracle 11g中的使用差别一

时间:2016-12-31 12:18:31      阅读:297      评论:0      收藏:0      [点我收藏+]

oracle10g上的代码

 MERGE INTO TCGGYSGHCP CP
    USING (SELECT *
             FROM (SELECT QD.LIFNR,
                          QD.MATNR,
                          MAX(MX.DATAB) DATAB,
                          MAX(MX.DATBI) DATBI,
                          QD.LOEKZ,
                          QD.SESSIONID,
                          MAX(QD.CREATEDATE) CREATEDATE,
                          QD.STATUS
                     FROM T_SAP2SCF_GHCP QD
                     LEFT JOIN A018 MX
                       ON MX.SESSIONID = QD.SESSIONID
                      AND MX.MATNR = QD.MATNR
                      AND MX.LIFNR = QD.LIFNR
                    WHERE QD.SESSIONID = P_SESSIONID
                    GROUP BY QD.LIFNR,
                             QD.MATNR,
                             QD.LOEKZ,
                             QD.SESSIONID,
                             QD.STATUS)) T
    ON (CP.WLBM = T.MATNR AND CP.GYSBM = T.LIFNR)
    WHEN MATCHED THEN
      UPDATE
         SET CP.ISDELETE  = T.LOEKZ,
             CP.TCCYTZSRQ = T.DATAB,
             CP.TCQXTZSRQ = T.DATBI,
             CP.GYSMC    =
             (SELECT XX.GYSMC FROM TCGGYSXX XX WHERE XX.GYSBM = T.LIFNR),
             CP.WLMC     =
             (SELECT WL.WLMC FROM TPRIWLZSJ WL WHERE WL.WLBM = MATNR)
    WHEN NOT MATCHED THEN
      INSERT
        (ZZBM,
         ZZXLH,
         WLBM,
         WLMC,
         ISDELETE,
         TCCYTZSRQ,
         TCQXTZSRQ,
         GYSBM,
         GYSMC)
      VALUES
        (‘5920‘,
         ‘1003‘,
         MATNR,
         (SELECT WL.WLMC FROM TPRIWLZSJ WL WHERE WL.WLBM = MATNR),
         LOEKZ,
         DATAB,
         DATBI,
         LIFNR,
         (SELECT XX.GYSMC FROM TCGGYSXX XX WHERE XX.GYSBM = T.LIFNR));

 

这段代码在oracle11g中编译报错

经过跟踪发现   子操作中的子查询去掉就可以,在此可以把子操作中的子查询数据放入到主查询中,子操作直接引用即可。

 

merge into在oracle10g和oracle 11g中的使用差别一

原文:http://www.cnblogs.com/softwaregirl/p/6238980.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!