Oracle基础之Merge into
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle基础之Merge into,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6144字,纯文字阅读大概需要9分钟。
内容图文
![Oracle基础之Merge into](/upload/InfoBanner/zyjiaocheng/486/a870011c34f64303aa508cc48af05608.jpg)
);
WHEN MATCHED THEN UPDATE SET 表示当on里面的关键字匹配上的时候,就进行修改操作。
但是值得注意的是,在做修改操作的时候,不可以修改on里面关键字的值。
WHEN NOT MATCHED THEN INSERT 表示当on里面的关键字匹配不上的时候,也就是说没有这样一条记录存在TEST_NEW表中时,就进行新增操作。
这时,做新增操作,就可以将on里面的字段进行设置值。
在ORACLE 10i中,MERGE有如下一些新特性。
1、UPDATE或INSERT子句是可选的 假如某个系统中,有个订单表,现在要求新增订单的记录都要反应到订单历史表ORDER_HISTORY中,我们可以如下写脚本:MERGE INTO ORDER_HISTORY H USING ( SELECT ORDER_ID ,--订单编号 CUSTOMER_ID ,--客户编号 EMPLOYEE_ID ,--员工编号 ORDER_DATE ,--订购日期; REQUIRED_DATE ,--预计到达日期 SHIPPED_DATE ,--发货日期 SHIPPER ,--运货商 FREIGHT ,--运费 SHIP_NAM ,--货主姓名; SHIP_ADDRESS ,--货主地址 SHIP_CITY ,--货主所在城市; SHIP_REGION ,--货主所在地区; SHIP_POSTALCODE ,--货主邮编 SHIP_COUNTRY --货主所在国家 FROM ORDER_DTL WHERE TO_CHAR(ODER_DATE, ‘YYYY-MM-DD‘) = ‘20110530‘ ) O ON ( O.ORDER_ID = H.ORDER_ID ) WHEN NOT MATCHED THEN INSERT ( H.ORDER_ID , H.CUSTOMER_ID , H.EMPLOYEE_ID , H.ORDER_DATE , H.REQUIRED_DATE , H.SHIPPED_DATE , H.SHIPPER , H.FREIGHT , H.SHIP_NAM , H.SHIP_ADDRESS , H.SHIP_CITY , H.SHIP_REGION , H.SHIP_POSTALCODE , H.SHIP_COUNTRY ) VALUES ( O.ORDER_ID , O.CUSTOMER_ID , O.EMPLOYEE_ID , O.ORDER_DATE , O.REQUIRED_DATE , O.SHIPPED_DATE , O.SHIPPER , O.FREIGHT , O.SHIP_NAM , O.SHIP_ADDRESS , O.SHIP_CITY , O.SHIP_REGION , O.SHIP_POSTALCODE , O.SHIP_COUNTRY
);
从上可以看出,MATCHED 或NOT MATCHED是可选的。不必非得
WHEN NOT MATCHED THEN UPDATE SET ..... WHEN MATCHED THEN INSERT 2、UPDATE和INSERT子句可以加WHERE子句现在由于需求改变,我们仅仅需要把员工1001的订单数据同步到订单历史记录表
MERGE INTO ORDER_HISTORY H USING ( SELECT ORDER_ID ,--订单编号 CUSTOMER_ID ,--客户编号 EMPLOYEE_ID ,--员工编号 ORDER_DATE ,--订购日期; REQUIRED_DATE ,--预计到达日期 SHIPPED_DATE ,--发货日期 SHIPPER ,--运货商 FREIGHT ,--运费 SHIP_NAM ,--货主姓名; SHIP_ADDRESS ,--货主地址 SHIP_CITY ,--货主所在城市; SHIP_REGION ,--货主所在地区; SHIP_POSTALCODE ,--货主邮编 SHIP_COUNTRY --货主所在国家 FROM ORDER_DTL ) O ON ( O.ORDER_ID = H.ORDER_ID ) WHEN MATCHED THEN UPDATE SET H.CUSTOMER_ID = O.CUSTOMER_ID , H.EMPLOYEE_ID = O.EMPLOYEE_ID , H.ORDER_DATE = O.ORDER_DATE , H.REQUIRED_DATE = O.REQUIRED_DATE , H.SHIPPED_DATE = O.SHIPPED_DATE , H.SHIPPER = O.SHIPPER , H.FREIGHT = O.FREIGHT , H.SHIP_NAM = O.SHIP_NAM , H.SHIP_ADDRESS = O.SHIP_ADDRESS , H.SHIP_CITY = O.SHIP_CITY , H.SHIP_REGION = O.SHIP_REGION , H.SHIP_POSTALCODE = O.SHIP_POSTALCODE , H.SHIP_COUNTRY = O.SHIP_COUNTRY WHERE O.EMPLOYEE_ID = ‘1001‘ WHEN NOT MATCHED THEN INSERT ( H.ORDER_ID , H.CUSTOMER_ID , H.EMPLOYEE_ID , H.ORDER_DATE , H.REQUIRED_DATE , H.SHIPPED_DATE , H.SHIPPER , H.FREIGHT , H.SHIP_NAM , H.SHIP_ADDRESS , H.SHIP_CITY , H.SHIP_REGION , H.SHIP_POSTALCODE , H.SHIP_COUNTRY ) VALUES ( O.ORDER_ID , O.CUSTOMER_ID , O.EMPLOYEE_ID , O.ORDER_DATE , O.REQUIRED_DATE , O.SHIPPED_DATE , O.SHIPPER , O.FREIGHT , O.SHIP_NAM , O.SHIP_ADDRESS , O.SHIP_CITY , O.SHIP_REGION , O.SHIP_POSTALCODE , O.SHIP_COUNTRY ) WHERE O.EMPLOYEE_ID = ‘1001‘;
Oracle基础之Merge into
标签:tom select class 查询 blog pow 介绍 custom 需求
本文系统来源:http://www.cnblogs.com/MoreThinking/p/7090256.html
内容总结
以上是互联网集市为您收集整理的Oracle基础之Merge into全部内容,希望文章能够帮你解决Oracle基础之Merge into所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。