oracle中merge关键字的用法

oracle中merge关键字的用法

ID:32399991

大小:35.50 KB

页数:3页

时间:2019-02-04

oracle中merge关键字的用法_第1页
oracle中merge关键字的用法_第2页
oracle中merge关键字的用法_第3页
资源描述:

《oracle中merge关键字的用法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Oracle中merge关键字的用法在Oracle9iR2版中引入的MERGE语句通常被称作“更新插入”(upsert),因为使用MERGE可以在同一个步骤中更新(update)并插入(insert)数据行,对于抽取、转换和载入类型的应用软件可以节省大量宝贵的时间,比如向数据仓库中加载数据,数据仓库中没有的数据行可以插入到数据仓库中,而已经存在的数据行也同时被更新。  在MERGE语句引入的时候,需要同时使用一条UPDATE和一条INSERT语句,顺序也是固定的(先使用UPDATE语句,然后是INSERT语句)。如果您只需要使用其中的某一条一句

2、,您只需要使用现有的INSERT或者UPDATE语句,而不必使用MERGE语句,而删除数据可以使用DELETE语句。  在Oracle10gR1版中,MERGE语句发生了变化,UPDATE或INSERT语句不再是必须的,而是可选项,您可以两者都用也可以都不用,而且,UPDATE语句也具备了DELETE的功能,您可以在同一个步骤中对现有的有效记录进行升级并清理废弃的记录。  列表A创建了一个表格列出现有项目:项目号码、标题、开始日期、进度完成比例以及员工对项目的响应,还创建了一个事务表格使用MERGE语句进行升级批处理。  DROPTABLEop

3、en_projects;  DROPTABLEproject_updates;  CREATETABLEopen_projects  (pnoNUMBER(6)PRIMARYKEY,  titleVARCHAR2(40),  startdateDATE,  pctdoneNUMBER(3),  empnoNUMBER(6)  );  INSERTINTOopen_projectsVALUES  (10,'Inventoryservers','08-JAN-07',0,206);  INSERTINTOopen_projectsVALUES  (

4、20,'UpgradeOracleonSRV01','15-JAN-07',0,206);  INSERTINTOopen_projectsVALUES  (30,'Conductskillsassessment','22-JAN-07',0,210);  CREATETABLEproject_updates  (actionCHAR(1),  pnoNUMBER(6),  pctdoneNUMBER(3),  empnoNUMBER(6)  );  INSERTINTOproject_updatesVALUES  ('C',10,50,214

5、);  INSERTINTOproject_updatesVALUES  ('D',20,NULL,NULL);  COMMIT;  列表A 一个典型的MERGE语句从识别表格开始执行升级,而且对现有的记录进行筛选测试:  MERGEINTOopen_projectsop  USINGproject_updatespu  ON(op.pno=pu.pno)  ...  表格open_projects会接受更新的数据,而project_updates表格则不会改变,如果项目号码(pno)在两个表格中都一样,那么数据行则被认为是相同的。  MERG

6、E语句剩下的部分是更新语句,以及DELETEWHERE语法。  ...  WHENMATCHEDTHEN  UPDATESETpctdone=pu.pctdone,  empno=pu.empno  DELETE  WHEREpu.action='D';  列表B展示了MERGE语句运行前后的表格情况。  SQL>@mergedel_b  PNOTITLESTARTDATEPCTDONEEMPNO  -------------------------------------------------------------------------

7、------  10Inventoryservers08-JAN-070206  20UpgradeOracleonSRV0115-JAN-070206  30Conductskillsassessment22-JAN-070210  APNOPCTDONEEMPNO  -------------------------------  C1050214  D20  2rowsmerged.  PNOTITLESTARTDATEPCTDONEEMPNO  ----------------------------------------------

8、---------------------------------  10Inventoryservers08-JAN-0750214  30Cond

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。