`
kingsleylong
  • 浏览: 55629 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[转]oracle merge into用法及例子

阅读更多

oracle merge into用法及例子

 

ORACLE 9I中加入了MERGE

  语法:

  MERGE [hint] 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;

  创建测试数据表:

  create table tj_test(id number,name varchar2(20),age number);

  向表中插入数据:

  insert into tj_test values (1,'jan',23);

  insert into tj_test values (2,'kk',22);

  insert into tj_test values (3,'joe',27);

  select * from tj_test;

  查询结果如下:

  1 jan 23

  2 kk 22

  3 joe 27

  创建另一新表

  create table tj_test1 as select * from tj_test where 1=0

  插入一条数据

  insert into tj_test1 values (1,'jlk',23);

  select * from tj_test1

  查询结果如下:

  1 jkl 23 --注意,这里的的NAME字段中的值是jkl

  使用MERGE,实现有则更新,无则插入,sql语句如下:

  merge into tj_test1 tt1

  using tj_test tt

  on (tt1.id=tt.id)

  when matched then

  update set

  tt1.name=tt.name,

  tt1.age=tt.age

  when not matched then

  insert values(

  tt.id,

  tt.name,

  tt.age)

  查询tj_test1表(对比原来表中的数据,更新了ID=1 ROW中字段NAME,同时多出两条新数据)

  select * from tj_test1

  改变行数据如下:

  1 jan 23 --这里的原有jkl值被更新

  3 joe 27 --原来表中没有的插入

  2 kk 22 --原来表中没有的插入

  如果存在就更新,不存在就插入

分享到:
评论

相关推荐

    Oracle中merge into的使用

    在Oracle 9i版本之前,`MERGE INTO`语句要求同时指定`UPDATE`和`INSERT`,但在9i及以后的版本,尤其是Oracle 10g中,这一限制被放宽了。现在,你可以根据需求选择性地使用`UPDATE`或`INSERT`,并且在`ON`条件中可以...

    oracle merge 用法详解

    ### Oracle Merge 用法详解 #### 一、Oracle Merge 命令介绍 自Oracle 9i版本开始,Oracle数据库引入了一个非常强大的SQL语句——`MERGE`命令。通过这个命令,用户可以在一个单一的SQL语句中完成对表的插入(`...

    oracle中merge into用法及实例解析

    Oracle中的`MERGE INTO`语句是一种强大的工具,用于整合数据操作,如更新、插入和删除,基于两个数据源的匹配条件。这个语句在处理数据仓库、数据同步或者复杂业务逻辑时非常有用。让我们详细了解一下`MERGE INTO`的...

    Oracle_merge

    本文将详细介绍 Oracle 中 `MERGE` 关键字的使用方法,并结合实际示例来解析其工作原理。 #### 二、`MERGE` 语句的基本概念 在 Oracle 9i R2 版本之前,如果需要同时进行更新和插入操作,开发人员通常需要编写两条...

    oracle数据匹配merge into的实例详解

    Oracle的`MERGE INTO`语句是一种强大的工具,用于根据源数据更新或插入目标表的记录。这个SQL命令结合了`INSERT`, `UPDATE`和`DELETE`操作,使得在处理数据匹配和同步时更加高效。在给定的实例中,`MERGE INTO`被...

    Oracle merge合并更新函数实例详解

    Oracle的MERGE语句是一种强大的数据操作工具,它在Oracle9i版本中被引入,用于合并UPDATE和INSERT操作。在处理需要根据特定条件更新或插入数据的场景时,MERGE语句提供了高效的解决方案,尤其适合那些需要在单个SQL...

    oracle使用 merge

    3. **处理`DBLINK`问题**:在跨数据库链接使用`MERGE`时,需要注意Oracle 10g中一个已知的bug(Bug ID 4311273),该bug可能导致ORA-02064错误。解决方法是确保`WHEN MATCHED THEN`和`WHEN NOT MATCHED THEN`两个...

    Oracle中用一张表的字段更新另一张表的字段

    在Oracle数据库中,当需要将一个表的字段值更新到另一个表时,通常可以使用`MERGE INTO`语句来实现。`MERGE INTO`是一个非常强大的SQL操作,它结合了`INSERT`、`UPDATE`和`DELETE`的功能,允许你在匹配条件的基础上...

    Oracle 10g OCP 047解析(精简版).pdf

    文档中通过具体的例子展示了如何使用SQL语句来实现高效的数据操作,包括数据的选择和插入等。 ### 二、知识点详细解析 #### 1. 多表插入(Multitable INSERT) ##### 1.1 无条件INSERT ALL **应用场景**:当需要...

    Oracle资料.doc

    最后,`MERGE INTO`语句是Oracle中的合并查询,用于合并插入和更新操作: ```sql MERGE INTO table_name USING table_name ON (join_condition) WHEN MATCHED THEN UPDATE SET… WHEN NOT MATCHED THEN INSERT(…) ...

    Oracle EBS 开发笔记

    - **Mergeinto应用**:执行插入或更新操作。 - **Truncate table**:清空表中的所有数据。 - **绑定变量与非绑定变量之比较**:探讨这两种变量类型的不同之处。 - **取不重复的记录行**:筛选出唯一的记录。 - ...

    oracle数据表分区知识

    2. **导入数据**:使用 `INSERT INTO ... SELECT FROM` 或其他方法将原始表的数据导入到新创建的分区表中。 3. **删除原始表**:确认数据迁移无误后,可以删除原始表。 4. **重命名新表**:最后,将新创建的分区表...

    Oracle-ERP开发笔记

    - Mergeinto是一个强大的DML语句,用于插入或更新数据。 **8. Truncatetable** - TRUNCATE TABLE命令用于清空表中的所有数据,但保留表结构不变。 **9. 绑定变量与非绑定变量之比较** - 绑定变量在SQL性能优化中...

    bulk collect学习

    这个例子展示了如何在一个游标(c1)中使用 BULK COLLECT INTO。首先定义了一个 DeptRecTab 类型,用于存储 DEPT 表的行记录。然后,打开游标并使用 BULK COLLECT INTO 将查询结果批量加载到 dept_recs 集合中。 3...

    Oracle事例

    sql> alter index xay_id allocate extent(size 200k datafile \'c:/oracle/index.dbf\'); <8>.alter index xay_id deallocate unused; 、查看索引 SQL>select index_name,index_type,table_name from user...

    Killtest 免费提供 1Z0-030 资料下载

    根据给定的信息,我们可以提取和总结出与Oracle数据库管理及技术相关的几个重要知识点: ### 1. 暂时表空间离线操作 在Oracle数据库中,暂时表空间主要用于存储临时对象,例如排序操作或创建索引过程中的临时数据...

Global site tag (gtag.js) - Google Analytics