oracle merge into 的例子
内容来自 oracle 11g 实用教程 郑阿奇等编
在 oracle 11g中有merge语句,用于根据与原表连接的结果,对目标表执行插入,更新,或者删除操作。例如,根据在一个表中找到的差异在另一个表中插入,更新或者删除行,这种方法可以对两个表进行信息同步。语法格式如下
merge into <目标表名>
using <原表名>on <条件表达式>
when matched then {update set ...|delete}
when not matched then insert(...) values()
merge into a
using xsb on (a.xh=xsb.学号)
when matched then update set a.xm = xsb.姓名,a.xb=xsb.性别,a.cssj = xsb.出生时间,a.zy=xsb.专业,a.zxf=xsb.总学分,a.bz=xsb.备注
when not matched then insert values(xsb.学号,xsb.姓名,xsb.性别,xsb.出生时间,xsb.专业,xsb.总学分,xsb.备注)
数据库
create table a
(
XH char(6) not null primary key,
xM char(8) not null,
XB char(2) not null,
CSSJ date not null,
ZY char(24) null,
ZXF number(2) null,
BZ varchar(200) null
);
--------------------------------------------------------
-- 文件已创建 - 星期日-七月-24-2016
--------------------------------------------------------
--------------------------------------------------------
-- DDL for Table XSB
-------------------------------------------------------- CREATE TABLE "SCOTT"."XSB"
( "学号" CHAR(6 BYTE),
"姓名" CHAR(8 BYTE),
"性别" CHAR(2 BYTE) DEFAULT '男',
"出生时间" DATE,
"专业" CHAR(12 BYTE),
"总学分" NUMBER(2,0),
"备注" VARCHAR2(200 BYTE)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ;
REM INSERTING into SCOTT.XSB
SET DEFINE OFF;
Insert into SCOTT.XSB (学号,姓名,性别,出生时间,专业,总学分,备注) values ('','周何骏 ','男',to_date('25-9月 -98','DD-MON-RR'),'计算机 ',90,null);
Insert into SCOTT.XSB (学号,姓名,性别,出生时间,专业,总学分,备注) values ('','王林 ','男',to_date('02-10月-97','DD-MON-RR'),'计算机 ',50,null);
Insert into SCOTT.XSB (学号,姓名,性别,出生时间,专业,总学分,备注) values ('','王燕 ','女',to_date('10-6月 -96','DD-MON-RR'),'计算机 ',50,null);
Insert into SCOTT.XSB (学号,姓名,性别,出生时间,专业,总学分,备注) values ('','王林 ','男',to_date('29-1月 -96','DD-MON-RR'),'通信工程 ',40,'有一门课不及格,待补考');
Insert into SCOTT.XSB (学号,姓名,性别,出生时间,专业,总学分,备注) values ('','林一帆 ','男',to_date('08-5月 -96','DD-MON-RR'),'计算机 ',52,'已提前修完一门课');
Insert into SCOTT.XSB (学号,姓名,性别,出生时间,专业,总学分,备注) values ('','马琳琳 ','女',to_date('02-10月-96','DD-MON-RR'),'通信工程 ',42,null);
--------------------------------------------------------
-- DDL for Index SYS_C0011202
-------------------------------------------------------- CREATE UNIQUE INDEX "SCOTT"."SYS_C0011202" ON "SCOTT"."XSB" ("学号")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ;
--------------------------------------------------------
-- Constraints for Table XSB
-------------------------------------------------------- ALTER TABLE "SCOTT"."XSB" MODIFY ("学号" NOT NULL ENABLE); ALTER TABLE "SCOTT"."XSB" MODIFY ("姓名" NOT NULL ENABLE); ALTER TABLE "SCOTT"."XSB" MODIFY ("性别" NOT NULL ENABLE); ALTER TABLE "SCOTT"."XSB" MODIFY ("出生时间" NOT NULL ENABLE); ALTER TABLE "SCOTT"."XSB" ADD PRIMARY KEY ("学号")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ENABLE;
oracle merge into 的例子的更多相关文章
- Oracle Merge into 详细介绍
Oracle Merge into 详细介绍 /*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句.通过MERGE语句,根据一张表或子查 ...
- Oracle merge
oracle merge 語法:
- Oracle merge合并更新函数
本博客介绍一下Oracle merge合并函数,业务场景:新增数据的时候要先查询数据库是否已经有改数据,有数据就更新数据,没数据才新增数据,这是很常见的业务场景,如果是用Oracle数据库的话,其实直 ...
- ORACLE MERGE INTO UPDATE DELETE 用法
ORACLE MERGE INTO UPDATE DELETE 用法 使用该MERGE语句从一个或多个源中选择行以进行更新或插入表或视图.您可以指定条件以确定是更新还是插入目标表或视图. 此语句是组合 ...
- oracle merge into与sqlserver merge into 比较
merge into: 在两个表之间,根据与源表联接的结果,对目标表执行插入.更新或删除操作. Oracle在9i引入了merge into命令,SQL Server 2008也引入merge int ...
- oracle regexp_like介绍和例子
oracle regexp_like介绍和例子 学习了:http://www.cnblogs.com/einyboy/archive/2012/08/01/2617606.html ORACLE中的支 ...
- Oracle merge into的优势
简介 Oracle merge into命令,顾名思义就是“有则更新,无则插入”,这个也是merge into 命令的核心思想,在实际开发过程中,我们会经常遇到这种通过两表互相关联匹配更新其中一个表的 ...
- Oracle—merge into语法
oracle的merge into语法,在这种情况下: 基于某些字段,存在就更新,不存在就插入: 不需要先去判断一下记录是否存在,直接使用merge into merge into 语法: MERGE ...
- Oracle Merge Into 用法详解
原文:http://blog.csdn.net/EdgenHuang/article/details/3587912 Oracle9i引入了MERGE命令,你能够在一个SQL语句中对一个表同时执行in ...
随机推荐
- jboss EAP 6.2 + Message Drive Bean(MDB) 整合IBM Webshpere MQ 7.5
上一篇我们知道了消息驱动Bean的基本用法,实际大型分布式企业应用中,往往会采用高性能的商业Queue产品,比如IBM Webshpere MQ(目前最新版本是7.5 ),下面讲解下如何在Jboss ...
- Android RecyclerView 使用完全解析 体验艺术般的控件
概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用. 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我 ...
- JavaScript的一些知识碎片(2)-反射-全局变量-回调
JavaScript中的反射:编程语言中的反射原理都一样,就是通过操作metadata(描述语言的语言)来完成一些不具备反射功能的语言很难实现的功能.在静态语言中,反射是一个高大上的东西,比如在运行时 ...
- 快速开发之代码生成器(asp.net mvc4 + easyui + knockoutjs)
一.前言 作为一个码农这么多年,一直在想怎么提高我们的编码效率,关于如何提高编码效率,我自己的几点体会 1.清晰的项目结构,要编写代码的地方集中 2.实现相同功能的代码量少并且清晰易懂 3.重复或有规 ...
- Tensorflow学习笔记1:Get Started
关于Tensorflow的基本介绍 Tensorflow是一个基于图的计算系统,其主要应用于机器学习. 从Tensorflow名字的字面意思可以拆分成两部分来理解:Tensor+flow. Tenso ...
- 桔子浏览器|1M安装包|hao123专属浏览器
桔子浏览器是百度为好123打造的首页导航浏览器,体积小.为老年机上网提供便利. 免费下载:http://yunpan.cn/cmKbYXamEVUiY 访问密码 d270
- 68 id -显示用户的id
Linux id命令用于显示用户的ID,以及所属群组的ID. id会显示用户以及所属群组的实际与有效ID.若两个ID相同,则仅显示实际ID.若仅指定用户名称,则显示目前用户的ID. 语法 id [-g ...
- 【心得】在脱离TFS的情况下,如何解除TFS绑定?
我们知道在有TFS的情况下,在文件-源代码管理-高级中可以解除TFS绑定. 但是如果我们出差去了,拿着笔记本电脑,打开解决方案的时候,会总是提示无法连接TFS,并且在源代码管理处尝试解除的时候也提示无 ...
- Alpha版本冲刺现场演示和阶段验收的总结
一共15个组.有13个组参加了今天的现场演示,分别是YZH.Radio Group.FZU5BOYS.静静看.Clean Code.Mod4.F4.For the Dream.Journey of C ...
- Eclipse运行内存溢出
VM arguments中添加如下: -Xms512m-Xmx1024m-XX:PermSize=256m-XX:MaxPermSize=256m-Xmn128m