Oralce9 的新方法: Merge into Using

一、语义

  MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。

二、语法结构

MERGE [INTO [schema .] table [t_alias]
USING [schema .] { table | view | subquery } [t_alias]
ON ( condition )
WHEN MATCHED THEN merge_update_clause
WHEN NOT MATCHED THEN merge_insert_clause;

三、应用例子

--例子一:
 MERGE INTO TEMP_CD_CNTR_QUERY A USING CONTAINER B
         ON (A.CNTR_NUM=B.EQMT_NUM and B.State=‘Active‘)
         WHEN MATCHED THEN
         UPDATE SET A.CNTR_NUM_CHECK=CASE WHEN B.CHECK_DIGIT IS NULL OR B.CHECK_DIGIT=‘‘
                        THEN   A.CNTR_NUM
                        ELSE   A.CNTR_NUM||B.CHECK_DIGIT
                         END ,
                        A.CNTR_TYPE=B.oocl_Cde;
--例子二:
         MERGE INTO TEMP_CD_CNTR_QUERY A USING (SELECT DISTINCT t.TRCKG_GRP_REF_CDE,t.CURRENT_CNTR_NUM,t.CONSLD_PACKG_REF_CDE FROM CGO_PACKAGE t) B
         ON (A.TRCKG_GRP_REF_CDE=B.TRCKG_GRP_REF_CDE and A.cntr_num = B.CURRENT_CNTR_NUM AND B.CONSLD_PACKG_REF_CDE IS NOT NULL)
         WHEN MATCHED THEN
         UPDATE SET A.IS_PATIAL= B.CONSLD_PACKG_REF_CDE;
时间: 2024-10-28 09:17:26

Oralce9 的新方法: Merge into Using的相关文章

POJ1182 食物链 (并查集)*新方法

本文出自:http://blog.csdn.net/svitter 题意: 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种. 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表示X和Y是同类. 第二种说法是"2 X Y",表示X吃Y. 此人对N个动物,用上述两种说法,一句接一句地说出K句话,这

mootools1.5.1使用笔记:类的创建,继承,为现有类增加新方法

1 window.addEvent('domready',function(){ 2 /* 3 新建一个Person的类,类上有 name属性和sayHello方法: 4 */ 5 var Person= new Class({ 6 initialize: function(name){ 7 this.name = name; 8 }, 9 sayHello:function(){ 10 console.log('hello,my name is '+this.name); 11 } 12 13

JavaScript笔记6-数组新方法

七.ECMAScript5关于数组的新方法 1.forEach():遍历数组,并为每个元素调用传入的函数;     举例: 1 var a = [1,2,3]; 2 var sum = 0; 3 //传一个参数 4 a.forEach(function(v){ 5 sum += v; 6 }); 7 console.log(sum);//6 8 //传三个参数(元素值,索引,数组本身) 9 a.forEach(function(v,i,a){ 10 a[i]=v+1;//为数组的各元素自加1 1

iOS5中UIViewController的新方法

iOS5中UIViewController的新方法 前言 在苹果的 WWDC2011 大会视频的<Session 101 - What’s New in Cocoa> 和<Session 102 - Implementing UIViewController Containment> 中介绍了苹果在 iOS5 中给 UIViewController 新增加的 5 方法以及一个属性: // 方法addChildViewController: removeFromParentViewC

MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult

MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult 导出EXCEL方法总结:MVC导出数据到EXCEL的方法有很多种,常见的是: 1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可:优点:可设置丰富的EXCEL格式,缺点:需要依赖EXCEL组件,且EXCEL进程在服务器中无法及时关闭,以及服务器上会存留大量的不必要的XLS文件: 2.设置输出头为:application/ms-excel,再输出拼接的HTM

(九十二)加速计的用法(过期方法+新方法)

在iOS4之前,使用UIAccelermeter获取加速计的数据,这种方法由于简单,沿用至今. 加速计坐标系如图所示,在相应轴向受力时会有数据变化. [过期方法] ①定义UIAccelerometer对象,设置代理,采样间隔,然后系统会自动调用代理方法. UIAccelerometer *ac = [UIAccelerometer sharedAccelerometer]; ac.delegate = self; ac.updateInterval = 1 / 30.0; ②然后遵循协议UIAc

新方法写动画

现在必须用appframework.js 做各种效果, 语法是和jquery差不多的,没看到animate.slideUp这些, 貌似是有用自定义标签的属性来做的,还没有试过. 不过因为现在不用考虑浏览器兼容性,只要伺候chrome一位,这些东西用css3的transition就可以轻松搞定. 任何属性,加上transition,在改变设置过transition的属性值时就会有动画效果. 语法 transition: property duration timing-function delay

UIViewController新方法的使用(transitionFromViewController:toViewController:duration:options:animations:completion:)

iOS5中,UIViewController新添加了几个方法: - (void)addChildViewController:(UIViewController *)childController NS_AVAILABLE_IOS(5_0); - (void) removeFromParentViewController NS_AVAILABLE_IOS(5_0); - (void)transitionFromViewController:(UIViewController *)fromView

《劲道》课程笔记——新时代的领导新方法

Fierce Conversation 劲道 Fierce指的是我们卸下面具,投入对话,让对话变得真实. 劲道四大目标: 质问真相. 刺激学习(产生新观点). 对付挑战. 丰富关系 我们要相信自己的选择,我们要为自己选择相信的事物负责. ——Cardinal Newman 下面情况属于劲道: 说真心话, 谈话直指问题核心, 真诚提问与倾听, 散发热情, 增进人际关系, 对话结束后,你有转变. Everyone Communicats,Few Connect 每个人都在沟通,但很少产生连接 ——J