以下的文章主要是对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 where1=0

插入一条数据

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

select * from tj_test1

查询结果如下:

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

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

merge into tj_test1 tt1

using tj_test tt

on (tttt1.id=tt.id)

when matched then

update set

tttt1.name=tt.name,

tttt1.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 --原来表中没有的插入

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

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

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

语法为:

MERGE INTO table

USING data_source

ON (condition)

WHEN MATCHED THEN update_clause

WHEN NOT MATCHED THEN insert_clause;

如:

MERGE INTO course c

USING (SELECT course_name, period,

course_hours

FROM course_updates) cu

ON (c.course_name=cu.course_name

ANDc.period=cu.period)

WHEN MATCHED THEN

UPDATE

SETc.course_hours=cu.course_hours

WHEN NOT MATCHED THEN

INSERT (c.course_name, c.period,

c.course_hours)

VALUES (cu.course_name, cu.period,

cu.course_hours);

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

【编辑推荐】

【责任编辑:孙巧华 TEL:(010)68476606】

点赞 0

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

  1. Oracle实例和Oracle数据库(Oracle体系结构)

    --========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...

  2. ORACLE 10 g的 merge into 用法

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

  3. oracle实例由,Oracle数据库和实例

    Oracle数据库服务器由一个数据库和至少一个数据库实例组成. 数据库是一组存储数据的文件,而数据库实例是一组管理数据库文件的内存结构. 另外,数据库由后台进程组成. 一个数据库和一个实例是紧密相连的 ...

  4. oracle实例举例,Oracle实例,具体运用

    Oracle关键字的使用 使用insert 添加数据: INSERT  INTO  表名  VALUES  (加入对应的数); COMMIT; INSERT INTO p_emp VALUES('TO ...

  5. Oracle 实例(ORACLE)

    接触Orcale了,概念性笔记. ----------------------------------------------------------------------------------- ...

  6. oracle实例文件,ORACLE实例管理之参数文件

    第四章  实例管理 4.1 参数文件 4.1.1 spfile Server parameter file: spfile   数据库服务运行过程中自动维护的参数文件  oracle9i以后新引入的 ...

  7. oracle实例包括用户进程吗,ORACLE实例和ORACLE数据库详解(三)

    e.PMON:负责在一个Oracle进程失败时清理资源. 主要用于清除失效的用户进程,释放用户进程所用的资源.如PMON将回滚未提交的工作,释放锁,释放分配给失败进程的SGA资源. f.CKPT 同步 ...

  8. oracle实例由,Oracle 数据库的实例由( )组成

    [判断题]平均动脉压是收缩压和舒张压之和的平均值. [单选题]3. 新民主主义社会是( ) [判断题]个人个人个别 [单选题]粒子系统的创建方法有几种( ) [判断题]乘务员要善于观察,对起飞时飞机温 ...

  9. oracle添加已有的实例,Oracle数据库怎么添加新的实例?,oracle实例

    Oracle数据库怎么添加新的实例?,oracle实例 安装Oracle时如果不指定SID,系统会默认设置为orcl,如果在安装过程中忘记修改了服务名,或者需要添加新的服务名(实例名),本文将讲述如何 ...

最新文章

  1. (转)(c#)数据结构与算法分析 --树
  2. 如何为回归问题选择最合适的机器学习方法?
  3. 独家 | PHM数据竞赛首个中国夺冠团队经验分享(常用模型赛题详解PPT视频)
  4. c# bitmap 去除噪点_黑头怎么去除最有效用盐处理的方法推荐
  5. [蓝桥杯2016决赛]阶乘位数-数论
  6. Linux基础知识之用户和用户组以及 Linux 权限管理
  7. 2021高考个人成绩排名查询,2021新高考八省联考实力排名:怎么查联考成绩在全省排名?...
  8. struts 结果类型
  9. onbeforeedit和onbeginedit数据不一致_深度解读,奔溃一致性、应用一致性的区别
  10. python中文聊天机器人_[源码和文档分享]基于python的中文聊天机器人
  11. C++基础::一些接口汇总
  12. c语言- I Love GPLT
  13. 华为静态路由配置案例
  14. 集成运算放大器及其应用
  15. 【爬虫】使用八爪鱼爬行百度地图美食店数据
  16. ASEMI双向可控硅BTA12A,详解BTA12A参数应用与特性
  17. 如何查看win10电脑系统盘是哪个盘?
  18. 十进制转换为三进制数_python3实现
  19. 已解决The method is not allowed for the requested URL.
  20. aop:aspectj-autoproxy作用

热门文章

  1. 增强学习Q-learning分析与演示(入门)
  2. C# 使用 Lotus notes 公共邮箱发送邮件
  3. jeecms内容管理系统使用了哪些技术
  4. 记一次与iframe之间的抗争
  5. 解决C/C++语言中全局变量重复定义的问题
  6. html实现3d视觉特效
  7. 深度剖析hdfs原理
  8. safehandle 和析构函数
  9. PHP06 PHP操作MySQL
  10. 用户控件中使用相对路径问题