我们今天主要介绍的是Oracle merge into用法以及相关例子,本文还涉及到其在实际操作中的相关语法的示例,望你在浏览之后会有所收获。

AD:51CTO学院:IT精品课程在线看!

以下的文章主要是对Oracle merge into用法以及相关例子的介绍,首先我们以Oracle 9I中加入MERGE入手,以下就是文章的具体内容的分析,希望你浏览完之后会给你带来一些帮助在此方面。

语法:

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

创建测试数据表:

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

向表中插入数据:

  1. insert into tj_test values (1,'jan',23);
  2. insert into tj_test values (2,'kk',22);
  3. insert into tj_test values (3,'joe',27);
  4. select * from tj_test;

查询结果如下:

1 jan 23

2 kk 22

3 joe 27

创建另一新表

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

插入一条数据

  1. insert into tj_test1 values (1,'jlk',23);
  2. select * from tj_test1

查询结果如下:

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

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

  1. merge into tj_test1 tt1
  2. using tj_test tt
  3. on (tttt1.id=tt.id)
  4. when matched then
  5. update set
  6. tttt1.name=tt.name,
  7. tttt1.age=tt.age
  8. when not matched then
  9. insert values(
  10. tt.id,
  11. tt.name,
  12. tt.age)

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

  1. select * from tj_test1

改变行数据如下:

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

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

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

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

9i已经支持了,是Merge,但是只支持select子查询,

如果是单条数据记录,可以写作select …… from dual的子查询。

语法为:

  1. MERGE INTO table
  2. USING data_source
  3. ON (condition)
  4. WHEN MATCHED THEN update_clause
  5. WHEN NOT MATCHED THEN insert_clause;

如:

  1. MERGE INTO course c
  2. USING (SELECT course_name, period,
  3. course_hours
  4. FROM course_updates) cu
  5. ON (c.course_name = cu.course_name
  6. AND c.period = cu.period)
  7. WHEN MATCHED THEN
  8. UPDATE
  9. SET c.course_hours = cu.course_hours
  10. WHEN NOT MATCHED THEN
  11. INSERT (c.course_name, c.period,
  12. c.course_hours)
  13. VALUES (cu.course_name, cu.period,
  14. cu.course_hours);

以上的相关内容就是对Oracle merge into用法及例子的介绍,望你能有所收获。

转载于:https://www.cnblogs.com/fangquan/p/3965667.html

Oracle merge into用法以及相关例子示例相关推荐

  1. oracle 实例用法,Oracle merge into用法以及相关例子示例

    以下的文章主要是对Oracle merge into用法以及相关例子的介绍,首先我们以Oracle 9I中加入MERGE入手,以下就是文章的具体内容的分析,希望你浏览完之后会给你带来一些帮助在此方面. ...

  2. oracle merge into 用法详解

    1.MERGE INTO 的用途  MERGE INTO 是Oracle 9i以后才出现的新的功能.那这个功能 是什么呢?  简单来说,就是:"有则更新,无则插入"  从这句话里, ...

  3. oracle merge into insert,Oracle Merge Into 用法

    语法: MERGE [INTO [schema .] table [t_alias] USING [schema .] { table | view | subquery } [t_alias] ON ...

  4. java oralce merge_mybatis 使用oracle merge into 语句踩坑实录(示例代码)

    SELECT to_char(sysdate,'yyyymmdd')||seq_dr_bcxx.nextval AS ID FROM dualMERGE INTO dr_doc_info doc US ...

  5. oracle中的merge into用法解析

    oracle中的merge into用法解析 merge into的形式 MERGE INTO [target-table] A USING [source-table sql] B ON([cond ...

  6. Oracle Merge Into 的用法详解实例

    Oracle merge into 的用法详解实例 作用:merge into 解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表: 语法: MERGE INTO [your table- ...

  7. oracle merge into 优化,ORACLE 10g 的 merge into用法

    在Oracle 10g之前,merge语句支持匹配更新和不匹配插入2种简单的用法,在10g中Oracle对merge语句做了增强,增加了条件选项和DELETE操作.下面我通过一个demo来简单介绍一下 ...

  8. ORACLE 10 g的 merge into 用法

    查看原文:http://www.ibloger.net/article/244.html 在Oracle 10g之前,merge语句支持匹配更新和不匹配插入2种简单的用法,在10g中Oracle对me ...

  9. 常见 Oracle HINT 的用法

    Hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式. Oracle 19c HINT  Comments https://docs.ora ...

  10. oracle中%type用法,oracle中declare用法

    第8 章 函数与存储过程 Oracle数据库中不仅可以使用单条语句对数据库进行 数据库中不仅可以使用单条语句对数据库进行 查操作,而且可以多条语句组成一个语句块, 增.删.改.查操作,而且可以多条语句 ...

最新文章

  1. android资源目录---assets与res/raw区别
  2. 论文,质量管理+进度管理(主质量)
  3. windows下如何查看磁盘IO性能
  4. 建立副本名称冲突_包的建立(一)
  5. Django中的request和response
  6. Merry Christmas!看甜点海报如何庆祝圣诞
  7. mysql中 REPLACE INTO 和 INSERT INTO 的区别
  8. 啥是前端开发工程师必会的5种网页布局方法?
  9. docker 之镜像制作dockerfile
  10. 把tif文件转化成jpg格式报错已解决
  11. wordpress最佳架构_动物和宠物的24个最佳WordPress主题
  12. 2019 谷歌dat.GUI组件对中文的支持
  13. python有像sumif的函数吗_最全的SUMIF函数用法,小白秒变老司机
  14. 股票交易接口-Java封装
  15. 2008年买书流水账
  16. Flink优化01---资源配置调优
  17. 华为虚拟服务器密码忘记怎么办,手机云服务器密码忘记了
  18. jsf 教学_JSF初学者教程
  19. 申诉解决TeamViewer免费个人版被误判为商业使用
  20. 深入理解Android Crash 流程

热门文章

  1. xml突然变成空白_真实职场故事:开会时候,被领导突然提问,我差点被开除了...
  2. 发的楷体怎么写_小学生硬笔书法怎么练
  3. oracle processes 的大小,Oracle中sessions和processes的大小关系(10g和11g不同)
  4. 算法:分离链表为两部分,小于某个值都在左边,大于等于某个值在右边 Partition List
  5. php xml构造,C++_C语言实现xml构造解析器,纯C实现xml构造解析器,所有实 - phpStudy...
  6. 找零钱问题系列之记忆搜索
  7. http协议详解(超经典)
  8. 2020 快手 被吊打面经
  9. 找出两个矩阵不同的元素_推荐系统传统推荐模型之矩阵分解
  10. EDSR dataloader.py代码问题