返回顶部
首页 > 资讯 > 数据库 >Oracle MERGE INTO语法探究
  • 730
分享到

Oracle MERGE INTO语法探究

2024-04-02 19:04:59 730人浏览 泡泡鱼
摘要

1、MERGE INTO 的用途:   MERGE INTO 是oracle 9i新增的语法,在10g时得到补充,用来合并UPDATE和INSERT语句,根据一张表或子查询与另一

1、MERGE INTO 的用途:
   MERGE INTO 是oracle 9i新增的语法,在10g时得到补充,用来合并UPDATE和INSERT语句,根据一张表或子查询与另一张表进行连接查询,连接条件匹配就进行

UPDATE,不匹配就进行INSERT,这个语法仅需要一次全表扫描就可以完成全部工作,执行效率会比单纯的UPDATE+INSERT高,具体应用可用于表之间的同步。
2、MERGE INTO 的语法:
语法结构:
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 [表名] [别名]        --需要更新的目标表

USING ( 子查询/表名/视图)[别名] --源表

ON ([连接条件] AND [...]...)    --连接条件/更新条件

WHEN MATHED THEN UPDATE SET [...]  --如果匹配,更新表记录,若只作更新出来,下面的INSERT部分可以去掉

WHEN NOT MATHED THEN INSERT VALUES() [...]  --如果不匹配,插入表记录
3、MERGE INTO 演示:
  1> 创建测试表及数据:
     --以表YAG1作为源表,表YAG2作为更新的目标表
     CREATE TABLE YAG1 AS SELECT OBJECT_NAME,oOBJECT_ID FROM USER_OBJECTS WHERE ROWNUM<=10;
     CREATE TABLE YAG2 AS SELECT OBJECT_NAME,oOBJECT_ID FROM USER_OBJECTS WHERE ROWNUM<=5;
     --修改表YAG1中某条记录的OBJECT_NAME,创造符合UPDATE的条件,
     sql> UPDATE YAG1 SET OBJECT_NAME='AAAAA' WHERE OBJECT_NAME='T_CAT';
  2>MERGE INTO 更新前两表的记录对比:
     SQL> SELECT A.OBJECT_ID,A.OBJECT_NAME,B.OBJECT_NAME FROM YAG1 A,YAG2 B WHERE A.OBJECT_ID=B.OBJECT_ID(+) ORDER BY 1;
A.OBJECT_ID      A.OBJECT_NAME        B.OBJECT_NAME
------------   ----------------   -----------------
46366            AAAAA              T_CAT
46367            SUM_STRING         SUM_STRING
46368            ARRAYLIST         ARRAYLIST
46369            TYSKZ_SJDX         TYSKZ_SJDX
46370            TYSKZ_SJXMGX         TYSKZ_SJXMGX

46371            PARAOBJECT 
46372            T_LINK 
46373            STR_SPLIT 
46374            SPLIT_TYPE 
46375            SYS_PLSQL_95487_9_1 
  3> 执行下面MERGE INTO 语句:
MERGE INTO YAG2 A
USING YAG1 B
ON (A.OBJECT_ID = B.OBJECT_ID)
WHEN MATCHED THEN
  UPDATE SET A.OBJECT_NAME = B.OBJECT_NAME
WHEN NOT MATCHED THEN
  INSERT VALUES (B.OBJECT_NAME, B.OBJECT_ID);
COMMIT; 
  4> MERGE INTO 更新后两表的记录对比:
     SQL> SELECT A.OBJECT_ID,A.OBJECT_NAME,B.OBJECT_NAME FROM YAG1 A,YAG2 B WHERE A.OBJECT_ID=B.OBJECT_ID(+) ORDER BY 1;
A.OBJECT_ID      A.OBJECT_NAME        B.OBJECT_NAME
------------   ----------------   -----------------
46366            AAAAA              AAAAA
46367            SUM_STRING         SUM_STRING
46368            ARRAYLIST           ARRAYLIST
46369            TYSKZ_SJDX         TYSKZ_SJDX
46370            TYSKZ_SJXMGX         TYSKZ_SJXMGX
46371            PARAOBJECT         PARAOBJECT
46372            T_LINK               T_LINK
46373            STR_SPLIT         STR_SPLIT
46374            SPLIT_TYPE         SPLIT_TYPE
46375            SYS_PLSQL_95487_9_1 SYS_PLSQL_95487_9_1
.

 

 

您可能感兴趣的文档:

--结束END--

本文标题: Oracle MERGE INTO语法探究

本文链接: https://lsjlt.com/news/39129.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Oracle MERGE INTO语法探究
    1、MERGE INTO 的用途:   MERGE INTO 是Oracle 9i新增的语法,在10g时得到补充,用来合并UPDATE和INSERT语句,根据一张表或子查询与另一...
    99+
    2024-04-02
  • mysql如何实现merge into语法
    这篇文章主要介绍了mysql如何实现merge into语法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 my...
    99+
    2024-04-02
  • merge into基本用法
    由于merge into平时很少用,但这次用到它来给记录做插入更新,于是简单记下最基本的用法。这里的例子就是给一个表中符合条件的数据做个值计数的更新,如果找到符合ID条件的记录,那么就将其值字段加1,否则...
    99+
    2024-04-02
  • oracle中merge into如何使用
    oracle中merge into如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。merge into的形式:MERGE IN...
    99+
    2024-04-02
  • jdbc使用oracle中merge into函数
    merge into可以使oracle数据表中已有数据进行合并。即有则update,否则更新下边的示例是在jdbc数据源连接后测试通过的1、单条数据Long companyAuthId&...
    99+
    2024-04-02
  • Oracle MERGE语句
    MERGE语句,它可以在一个SQL语句中对一张表或一个视图同时做更新或插入操作,避免了多个INSERT、UPDATE和DELETE语句。它可以从一个或多个数据源中选择数据对目标表做更新或插入操作,你...
    99+
    2024-04-02
  • 达梦数据库、MySQL MERGE INTO 用法
    1. 需求描述 在我们日常开发中,经常会有些数据是唯一的,比如人员的信息、车辆基本信息等等,我们在数据库中只存一条数据,我们在批量导入数据的时候,有重复数据是很难受的事情,我们用MERGE INTO 就可以解决这件事情 2. MERGE I...
    99+
    2023-09-21
    mysql sql 数据库
  • oracle数据匹配merge into的实例详解
    oracle数据匹配merge into的实例详解 前言:  很久之前,估计在2010年左右在使用Oralce,当时有个需求就是需要对两个表的数据进行匹配,这两个表的数据结构一致,一个是正式表,...
    99+
    2024-04-02
  • ORACLE ORA-00600: 内部错误代码, 参数: [kokbcvb1]与merge into
     最近,一地市Oracle数据库跑一个Job报错,报错内容如下:     操作系统:windows server 2008R2     数...
    99+
    2024-04-02
  • ORACLE sql merge into update where条件位置与性能消耗
        环境:     操作系统版本:linux redhat 6.6     数据库版本:oracle 11.2.0.4   &nbs...
    99+
    2024-04-02
  • Go语言的特色探究
    探索Go语言的独特之处 Go语言自诞生以来,凭借其简洁高效的设计理念和强大的并发支持,逐渐成为众多开发者的首选编程语言。作为一种开源、静态类型的编程语言,Go语言在系统编程、网络编程、分布式系统等领域展现了独...
    99+
    2024-01-30
    高效 静态类型 并行 网络编程 标准库
  • Python 自然语言处理:编程算法探究?
    Python 自然语言处理:编程算法探究 自然语言处理(NLP)是人工智能领域中的一个重要分支,它研究如何使计算机能够理解、处理和生成自然语言,以便更好地与人类交互。Python 是一种流行的编程语言,它在 NLP 领域中也有着重要的应用。...
    99+
    2023-11-14
    自然语言处理 编程算法 学习笔记
  • oracle的merge语句怎么使用
    Oracle的MERGE语句用于合并数据,可以同时执行INSERT、UPDATE、DELETE操作。它的基本语法如下: MERGE ...
    99+
    2024-04-09
    oracle
  • 探究Go语言中方法和函数的区别
    Go语言是一门流行的静态类型编程语言,其特点是简洁、高效和并发性强。在Go语言中,方法(method)和函数(function)是两个重要的概念。本文将探究Go语言中方法和函数的区别,...
    99+
    2024-04-02
  • oracle fetch into语句怎么使用
    FETCH INTO语句用于从游标中获取数据,并将其存储在指定的变量中。下面是FETCH INTO语句的使用方法:1. 首先,声明一...
    99+
    2023-10-18
    oracle
  • oracle中insert into select用法
    insert into select 语句用于将一个表中的数据插入到另一个表。它支持插入所有列或特定列,并可以通过 where 子句使用条件进行筛选。通过指定目标表、...
    99+
    2024-05-08
    oracle
  • 探究Go语言中方法与函数的使用方法
    go语言提供了方法和函数两种机制来定义可重用代码块。方法用于在特定类型上操作数据,定义时需要显式指定接收者类型,使用点运算符调用。函数用于全局操作,定义与其他编程语言类似,使用括号调用。...
    99+
    2024-04-03
    方法 函数 go语言
  • 探究Go语言的应用领域
    Go语言是一种由Google开发的开源编程语言,它的设计目标是提高程序员们的生产力。Go语言以简洁、高效和易于使用而著称,因此在很多领域都有广泛的应用。本文将探究Go语言在不同领域的应...
    99+
    2024-03-04
    go语言 探究 应用领域 网络编程
  • 探究Go语言的热门原因
    Go语言自诞生以来,就备受程序员们的喜爱,其独特的特性和强大的功能使得它在软件开发领域拥有着广泛的应用。那么,究竟是什么原因让Go语言如此受欢迎呢?接下来,让我们通过探究Go语言的特性...
    99+
    2024-03-11
    高效性 开发速度 并发支持 go语言 网络编程 垃圾回收器 标准库
  • 探究Go语言的独特优势
    标题:探究Go语言的独特优势 近年来,Go语言作为一种新兴的编程语言逐渐受到了广泛的关注和应用。其简洁高效的特性使得Go语言在互联网领域得到了越来越多的应用,吸引了众多开发者的青睐。那...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作