知识大全 详解Oracle10g中MERGE功能的增强

Posted 条件

篇首语:休言女子非英物,夜夜龙泉壁上鸣。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 详解Oracle10g中MERGE功能的增强相关的知识,希望对你有一定的参考价值。

详解Oracle10g中MERGE功能的增强  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Oracle i引入了MERGE命令 你能够在一个SQL语句中对一个表同时执行inserts和updates操作 MERGE命令从一个或多个数据源中选择行来updating或inserting到一个或多个表 在Oracle g中MERGE有如下一些改进

  

   UPDATE或INSERT子句是可选的

  

   UPDATE和INSERT子句可以加WHERE子句

  

   在ON条件中使用常量过滤谓词来insert所有的行到目标表中 不需要连接源表和目标表

  

   UPDATE子句后面可以跟DELETE子句来去除一些不需要的行

  

  首先创建示例表

  

>

   可省略的UPDATE或INSERT子句

  

  在Oracle i MERGE语句要求你必须同时指定INSERT和UPDATE子句 而在Oracle g 你可以省略UPDATE或INSERT子句中的一个 下面的例子根据表NEWPRODUCTS的PRODUCT_ID字段是否匹配来updates表PRODUCTS的信息:

  

>

  

  

  

  

  在上面例子中 MERGE语句影响到是产品id为 和 的行 它们的产品名字和种 类被更新为表newproducts中的值 下面例子省略UPDATE子句 把表NEWPRODUCTS中新的PRODUCT_ID插入到表PRODUCTS中 对于在两个表中能够匹配上PRODUCT_ID的数据不作任何处理 从这个例子你能看到PRODUCT_ID= 的行被插入到表PRODUCTS中

  

>

   带条件的Updates和Inserts子句

  

  你能够添加WHERE子句到UPDATE或INSERT子句中去 来跳过update或insert操作对某些行的处理 下面例子根据表NEWPRODUCTS来更新表PRODUCTS数据 但必须字段CATEGORY也得同时匹配上:

  

>

  

  

  

  在这个例子中 产品ID为 和 匹配ON条件但是 的category不匹配 因此MERGE命令只更新两行数据 下面例子展示了在Updates和Inserts子句都使用WHERE子句:

  

>

  

  

  注意由于有WHERE子句INSERT没有插入所有不匹配ON条件的行到表PRODUCTS

  

   无条件的Inserts

  

  你能够不用连接源表和目标表就把源表的数据插入到目标表中 这对于你想插入所有行到目标表时是非常有用的 Oracle g现在支持在ON条件中使用常量过滤谓词 举个常量过滤谓词例子ON ( = ) 下面例子从源表插入行到表PRODUCTS 不检查这些行是否在表PRODUCTS中存在:

  

>

  

  

  

   新增加的DELETE子句

  

  Oracle g中的MERGE提供了在执行数据操作时清除行的选项 你能够在WHEN MATCHED THEN UPDATE子句中包含DELETE子句 DELETE子句必须有一个WHERE条件来删除匹配某些条件的行 匹配DELETE WHERE条件但不匹配ON条件的行不会被从表中删除

  

  下面例子验证DELETE子句 我们从表NEWPRODUCTS中合并行到表PRODUCTS中 但删除category为ELECTRNCS的行

  

>

  

  

  

cha138/Article/program/Oracle/201311/18698

相关参考

知识大全 Oracle10G关于表操作常用语句详解及随想

Oracle10G关于表操作常用语句详解及随想  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最

知识大全 oracle中merge的简单使用

  merge在oracle用以从另一张表中取数据插入到一张表中如果两张表中记录符合某些条件则替换如果不符合则插入下面的例子是把mergetest中记录更新到newmergetest如果两张表的id相

知识大全 oracle中利用merge语句防止重复插入

  由于项目中需要用到批量插入为了防止用户插入重复的数据需要先判断插入的数据是不是已经存在如果存在则忽略这次插入否则插入这条数据刚开始的时候是先用一条SQL语句判断如果返回结果是真(记录已经存在)则忽

知识大全 Oracle10g新特性—增强的CONNECTBY子句

Oracle10g新特性—增强的CONNECTBY子句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 Oracle中的Merge函数(批量更新/删除)

Oracle中的Merge函数(批量更新/删除)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Merge在Oracle中的用法注意问题

Merge在Oracle中的用法注意问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  merg

知识大全 Oracle10G启用闪回功能

Oracle10G启用闪回功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  [oracle@l

知识大全 Oracle10g中current

Oracle10g中current  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以下的文章主要

知识大全 Oracle10g中层次查询简介

Oracle10g中层次查询简介  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们可以通过ST

知识大全 Oracle10g中如何分析响应时间

Oracle10g中如何分析响应时间  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Oracl