Welcome 微信登录

首页 / 数据库 / MySQL / Oracle merge从9i到10g的增强

MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。下面看个具体例子:
  1. hr@ORCL> select * from p;  
  2.   
  3.         ID NAME  
  4. ---------- ----------   
  5.          1 d  
  6.          3 e  
  7.          8 f  
  8.   
  9. hr@ORCL> select * from t;  
  10.   
  11.         ID NAME  
  12. ---------- ----------   
  13.          1 a  
  14.          2 b  
  15.          3 c  
  16.   
  17. hr@ORCL> merge into t using p  
  18.   2         on (t.id=p.id)  
  19.   3       when matched then  
  20.   4     update set  
  21.   5       t.name=p.name  
  22.   6       when not matched then  
  23.   7     insert values  
  24.   8       (p.id,p.name)  
  25.   9  ;  
  26.   
  27. rows merged.  
  28.   
  29. hr@ORCL> select * from t;  
  30.   
  31.         ID NAME  
  32. ---------- ----------   
  33.          1 d  
  34.          2 b  
  35.          3 e  
  36.          8 f  
  37.   
  38. hr@ORCL> commit;  
  39.   
  40. Commit complete.  
下面稍微修改一下例子:
  1. hr@ORCL> insert into p values(1,"h");  
  2.   
  3. 1 row created.  
  4.   
  5. hr@ORCL> commit;  
  6.   
  7. Commit complete.  
  8.   
  9. hr@ORCL> merge into t using p  
  10.   2         on (t.id=p.id)  
  11.   3       when matched then  
  12.   4     update set  
  13.   5       t.name=p.name  
  14.   6       when not matched then  
  15.   7     insert values  
  16.   8       (p.id,p.name)  
  17.   9  ;  
  18.  merge into t using p  
  19.                     *  
  20. ERROR at line 1:  
  21. ORA-30926: unable to get a stable set of rows in the source tables  
  • 1
  • 2
  • 下一页
Oracle 横表、纵表一点记录rman系列之进入rman相关资讯      Oracle基础 
  • Oracle基础介绍及常用相关SQL*PLUS  (03月11日)
  • Oracle 角色的两个特性和误区  (09/04/2012 05:56:16)
  • Oracle rac11.2.0.3.0的vip在重启  (09/02/2012 10:00:39)
  • Oracle中删除用户遇到的问题  (09/08/2012 20:01:42)
  • IMP-00008: unrecognized   (09/02/2012 10:03:25)
  • 在Oracle数据库上设置限制ip地址访  (09/02/2012 09:59:55)
本文评论 查看全部评论 (0)
表情: 姓名: 字数