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中的使用差别一的更多相关文章

  1. Oracle 11g中修改默认密码过期天数和锁定次数

    Oracle 11g中修改默认密码过期天数和锁定次数 密码过期的原因一般有两种可能: 一.由于Oracle中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180 ...

  2. 盘点 Oracle 11g 中新特性带来的10大性能影响

    Oracle的任何一个新版本,总是会带来大量引人瞩目的新特性,但是往往在这些新特性引入之初,首先引起的是一些麻烦,因为对于新技术的不了解.因为对于旧环境的不适应,从Oracle产品到技术服务运维,总是 ...

  3. Oracle 11g中的snapshot standby特性

    在Oracle 11g中,data guard最吸引人的,除了active data guard的实时查询特性(即可以以只读方式打开物理standby数据库的同时MRP进程能继续做recover),快 ...

  4. oracle 11g中的自动维护任务管理

    因为人员紧缺,最近又忙着去搞性能优化的事情,有时候真的是不想再搞这个事情,只是没办法,我当前的绩效几乎取决于这个项目的最终成绩,所以不管是人的事还是事的事,都得去让他顺利推进. 前段时间发生还有几台服 ...

  5. oracle 11g 中 (oracle 10g) crsctl 的 替换命令

     oracle 11g 中 (oracle 10g) crsctl 的 替换命令 Deprecated Command Replacement Commands crs_stat  ---集群状态 ...

  6. Oracle 11g 中SQL性能优化新特性之SQL性能分析器(SQLPA)

    Oracle11g中,真实应用测试选项(the Real Application Testing Option)提供了一个有用的特点,叫SQL性能分析器(SQL Performance Analyze ...

  7. Oracle 11g中修改被锁定的用户:scott

    在安装完Oracle10g和创建完oracle数据库之后,想用数据库自带的用户scott登录,看看连接是否成功. 在cmd命令中,用“sqlplus scott/ tiger”登录时,老是提示如下信息 ...

  8. Oracle 11g 中恢复管理器RMAN介绍

    这是我平时摘录的笔记,从管理艺术那本书上摘录出来的,放到这里 RMAN 可在数据库服务器的帮助下从数据库内备份数据文件,可构造数据文件映像副本.控制文件和控制文件映像.对当日志 SPFILE 和RMA ...

  9. Oracle 11g中查询CPU占有率高的SQL

    oracle版本:oracle11g 背景:今天在Linux中的oracle服务上,运用top命令发现许多进程的CPU占有率是100%. 操作步骤: 以进程PID:7851为例 执行以下语句: 方法一 ...

随机推荐

  1. java加法流程图

  2. linux命令:crontab命令(转)

    一.crond简介 二.crond服务 三.crontab命令详解 四.使用注意事项 linux系统是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作 ...

  3. nodejs的初学

    1.启服务器.先server.js,再命令行输入命令node server.js,打开浏览器输入http://127.0.0.1:2016可以看到有内容输出. server.js代码如下: var h ...

  4. Dynamics AX 2012 在BI分析中建立数据仓库的必要性

    AX系统已有的BI分析架构 对于AX 的BI分析架构,相信大家都了解,可以看Reinhard之前的译文[译]Dynamics AX 2012 R2 BI系列-分析的架构 . AX 的BI分析架构的优势 ...

  5. 接口测试之HTTP协议详解

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  6. build.gradle文件介绍

    对于以前用Eclipse开发安卓的小伙伴来说,Gradle文件是陌生的. 不同于Eclipse,而Android Studio 是采用Gradle来构建项目的. 先来介绍最外层目录下的build.gr ...

  7. eclipse安装Veloeclipse

    step 1.Help-->install new software-->Add Name:Veloeclipse Value:http://veloeclipse.googlecode. ...

  8. Linux内核分析:打开文件描述符实现

    在Linux中每一个进程的数据是存储在一个task_struct结构(定义在sched.h中)中的. struct task_struct { volatile long state; /* -1 u ...

  9. R语言多项式回归

    含有x和y这两个变量的线性回归是所有回归分析中最常见的一种:而且,在描述它们关系的时候,也是最有效.最容易假设的一种模型.然而,有些时候,它的实际情况下某些潜在的关系是非常复杂的,不是二元分析所能解决 ...

  10. js对象/数组深度复制

    今天碰到个问题,js对象.数组深度复制:之前有见过类似的,不过没有实现函数复制,今晚想了一下,实现代码如下: function clone(obj) { var a; if(obj instanceo ...