设为首页 加入收藏

TOP

ORACLE10g的mergeinto用法
2015-07-24 11:44:50 来源: 作者: 【 】 浏览:5
Tags:ORACLE10g mergeinto 用法
Oracle 10g之前,merge语句支持匹配更新和不匹配插入2种简单的用法,在10g中Oracle对merge语句做了增强,增加了条件选项和DELETE操作。下面我通过一个demo来简单介绍一下10g中merge的增强和10g前merge的用法。
 
参考Oracle 的SQL Reference 下面我在一下环境中做一个测试看看

\

创建表subs 和 acct

?

create table subs(
       msid     number(9),
       ms_type  char(1),
       areacode number(3)
);

create table acct(
       msid       number(9),
       bill_month number(6),
       areacode   number(3),
       fee        number(8,2) default 0.00
);
插入数据

?

?

insert into subs values(905310001,0,531);
insert into subs values(905320001,1,532);
insert into subs values(905330001,2,533);
commit

?

语法
--  语法
merge [into [schema .] table [t_alias]
  using [schema .] { table | view | subquery } [t_alias]
    on ( condition )
       when matched then 
            merge_update_clause
       when not matched then 
            merge_insert_clause;
测试

?

?

---  matched:更新    not matched:插入  两者可以同步执行也可以只要一个条件
merge into acct a
   using subs b
      on (a.msid = b.msid)
         when matched then
            update set a.areacode = 22 
         when not matched then
            insert (msid, bill_month, areacode) values (b.msid, '200702', b.areacode);
commit
增强条件查询操作

?

?

merge into acct a
   using subs b
      on (a.msid = b.msid)
         when matched then
            update set a.areacode = 22 where b.ms_type = 0
         when not matched then
            insert (msid, bill_month, areacode) values (b.msid, '200702', b.areacode) where b.ms_type = 0;
commit
增强删除操作
merge into acct a
   using subs b
      on (a.msid = b.msid)
         when matched then
            update set a.areacode = 22
            delete where (b.ms_type != 0);
commit


?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇在windows下查看Oracleclientbit.. 下一篇dbca-silent-responsefile建库由..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·【超详细】JDK 下载 (2025-12-24 18:19:32)
·Java_百度百科 (2025-12-24 18:19:29)
·简介 - Java教程 - (2025-12-24 18:19:27)
·C++ 语言社区-CSDN社 (2025-12-24 17:48:24)
·CSDN问答专区社区-CS (2025-12-24 17:48:22)