Oracle Merge的使用范例

--语法如下
merge into  qcfang.bbb b using(select * from qcfang.aaa) a
on (b.a_id=a.a_id)
when matched then
   update set
           b.a_name=a.a_name, b.a_sex = a.a_sex, b.a_type = a.a_type,b.a_salary = a.a_salary
when not matched then
     insert
     (b.a_id,b.a_name,b.a_sex,b.a_type,b.a_salary)
     values
     (a.a_id,a.a_name,a.a_sex,a.a_type,a.a_salary);
     commit;

注意:

1、merge为dml操作,没必要在存储过程里写动态sql来实现,动态sql性能相对于静态sql来说效果要差一些;

2、不能update两表关联的key值;

本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

时间: 2025-01-30 06:33:40

Oracle Merge的使用范例的相关文章

Oracle MERGE INTO的用法示例介绍

 这篇文章主要介绍了Oracle MERGE INTO的用法,需要的朋友可以参考下 很多时候我们会出现如下情境,如果一条数据在表中已经存在,对其做update,如果不存在,将新的数据插入.如果不使用Oracle提供的merge语法的话,可能先要上数据库select查询一下看是否存在,然后决定怎么操作,这样的话需要写更多的代码,同时性能也不好,要来回数据库两次.使用merge的话则可以一条SQL语句完成. 1)主要功能 提供有条件地更新和插入数据到数据库表中 如果该行存在,执行一个UPDATE操作

Oracle merge的多组匹配条件该怎么写?

问题描述 Oracle merge的多组匹配条件该怎么写?比如我是想要这种多组条件:merge into whiskytest xusing (select t.*, t.rowid from whiskytest t) ton (x.remark = t.remark and x.updater = t.updater) or (x.remark is null and x.updater = t.updater) or (x.remark is null and x.updater is n

Oracle Merge Into的用法详解实例

作用:merge into 解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表: 语法: MERGE INTO [your table-name] [rename your table here] USING ( [write your query here] )[rename your query-sql and using just like a table] ON ([conditional expression here] AND [-]-) WHEN MATHED THEN

Oracle MERGE语句语法检查不严格

测试发现即使在11.2中,这个问题仍然存在: SQL> SELECT * FROM V$VERSION; BANNER -------------------------------------------------------------------------------- Oracle Database11gEnterprise Edition Release11.2.0.1.0 - 64bit Production PL/SQL Release 11.2.0.1.0 - Product

ORACLE MERGE 介绍

MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句. 通过MERGE语句,根据一张表或多表联合查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT.这个语 法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE.通过这个MERGE你能够在一个SQL语句中对一个表同时执行 INSERT和UPDATE操作. 在 Oracle 10g中MERGE有一些新特性,后面我会介绍这些新特征.先看看MERGE语法

Oracle MERGE INTO的用法示例介绍_oracle

很多时候我们会出现如下情境,如果一条数据在表中已经存在,对其做update,如果不存在,将新的数据插入.如果不使用Oracle提供的merge语法的话,可能先要上数据库select查询一下看是否存在,然后决定怎么操作,这样的话需要写更多的代码,同时性能也不好,要来回数据库两次.使用merge的话则可以一条SQL语句完成. 1)主要功能 提供有条件地更新和插入数据到数据库表中 如果该行存在,执行一个UPDATE操作,如果是一个新行,执行INSERT操作 - 避免了分开更新 - 提高性能并易于使用

Oracle Merge Into 用法详解

原文:http://blog.csdn.net/EdgenHuang/article/details/3587912 Oracle9i引入了MERGE命令,你能够在一个SQL语句中对一个表同时执行inserts和updates操作. MERGE命令从一个或多个数据源中选择行来updating或inserting到一个或多个表. Oracle 10g中MERGE有如下一些改进: UPDATE或INSERT子句是可选的 UPDATE和INSERT子句可以加WHERE子句 ON条件中使用常量过滤谓词来

oracle merge和批量insert实操

create table small_customers (customer_id number, sum_orders number) ; create table medium_customers (customer_id number, sum_orders number) ; create table large_customers (customer_id number, sum_orders number) ; select * from small_customers ; sele

Oracle中简单查询、限定查询、数据排序SQL语句范例和详细注解_oracle

一.简单查询 SQL(Structured Query Language) 结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统.ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言. Oracle数据库之所以发展的很好,主要也是因为Oracle是全世界最早采用SQL语句的数据库产品. SQL功能强大,概括起来,它可以分成以下几组: 复制代码 代码如下: DML(Data Manipulation Language) 数据操作语言,用于