


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle 中merge关键字的用法在Oracle 9i R2版中引入的MERGE语句通常被称作“更新插入”(upsert),因为使用MERGE可以在同一个步骤中更新(update)并插入(insert)数据行,对于抽取、转换和载入类型的应用软件可以节省大量宝贵的时间,比如向数据仓库中加载数据,数据仓库中没有的数据行可以插入到数据仓库中,而已经存在的数据行也同时被更新。在MERGE语句引入的时候,需要同时使用一条UPDATE和一条INSERT语句,顺序也是固定的(先使用UPDATE语句,然后是INSERT语句)。如果您只需要使用其中的某一条一句,您只需要使用现有的INSERT或者UPDATE语句,而不必使用MERGE语句,而删除数据可以使用DELETE语句。在Oracle 10g R1版中,MERGE语句发生了变化,UPDATE或INSERT语句不再是必须的,而是可选项,您可以两者都用也可以都不用,而且,UPDATE语句也具备了DELETE的功能,您可以在同一个步骤中对现有的有效记录进行升级并清理废弃的记录。列表A创建了一个表格列出现有项目:项目号码、标题、开始日期、进度完成比例以及员工对项目的响应,还创建了一个事务表格使用MERGE语句进行升级批处理。DROP TABLE open_projects; DROP TABLE project_updates; CREATE TABLE open_projects (pno NUMBER(6) PRIMARY KEY, title VARCHAR2(40), startdate DATE, pctdone NUMBER(3), empno NUMBER(6) ); INSERT INTO open_projects VALUES (10, Inventory servers, 08-JAN-07,0, 206); INSERT INTO open_projects VALUES (20, Upgrade Oracle on SRV01,15-JAN-07, 0, 206); INSERT INTO open_projects VALUES (30, Conduct skills assessment,22-JAN-07, 0, 210); CREATE TABLE project_updates (action CHAR(1), pno NUMBER(6), pctdone NUMBER(3), empno NUMBER(6) ); INSERT INTO project_updates VALUES (C, 10, 50, 214); INSERT INTO project_updates VALUES (D, 20, NULL, NULL); COMMIT; 列表A一个典型的MERGE语句从识别表格开始执行升级,而且对现有的记录进行筛选测试:MERGE INTO open_projects op USING project_updates pu ON (op.pno = pu.pno) . 表格open_projects会接受更新的数据,而project_updates表格则不会改变,如果项目号码(pno)在两个表格中都一样,那么数据行则被认为是相同的。MERGE语句剩下的部分是更新语句,以及DELETE WHERE语法。. WHEN MATCHED THEN UPDATE SET pctdone = pu.pctdone, empno = pu.empno DELETE WHERE pu.action = D; 列表B展示了MERGE语句运行前后的表格情况。SQL mergedel_b PNO TITLE STARTDATE PCTDONE EMPNO - - - - - 10 Inventory servers 08-JAN-07 0 206 20 Upgrade Oracle on SRV01 15-JAN-07 0 206 30 Conduct skills assessment 22-JAN-07 0 210 A PNO PCTDONE EMPNO - - - - C 10 50 214 D 20 2 rows merged. PNO TITLE STARTDATE PCTDONE EMPNO - - - - - 10 Inventory servers 08-JAN-07 50 214 30 Conduct skills assessment 22-JAN-07 0 210 A PNO PCTDONE EMPNO - - - - C 10 50 214 D 20 SQL spool off 列表B第一个事务对第10号项目进行了改变(操作c),项目完成比例从0变成了50,项目员工人数变成了2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45506-2025剩余电阻比测量谐振腔级铌超导体剩余电阻比测量
- GB/T 45505.4-2025平板显示器基板玻璃测试方法第4部分:力学性能
- 培训部总结与规划
- 城市交通规划合同管理著作权咨询重点基础知识点
- 地震安全评估师重点基础知识点
- 营销产品培训大纲设计
- 河北钉钉协议书
- 公务用车车辆租赁合同
- 民间标会协议书
- 超市部分承包合同协议
- GB/T 32960.3-2025电动汽车远程服务与管理系统技术规范第3部分:通信协议及数据格式
- 2024年江苏省劳动关系研究院招聘考试真题
- 2024年四川省公安厅招聘警务辅助人员真题
- 突发性聋诊疗指南(2025版)
- 2025年电子信息工程师职业资格考试试卷及答案
- 粮食局业务知识课件
- 2025年广东松山职业技术学院单招职业倾向性测试题库
- 创新教学策略在高中物理课堂的应用
- 甘肃武威事业单位招聘考试高频题库带答案2025年
- 2025年全国国家版图知识竞赛题库及答案
- 2025年湖北省鄂州市荆楚联盟中考模拟生物试题(一)(含答案)
评论
0/150
提交评论