oracle实现 无则insert插入,有则update更新,一条语句直接进行insert/update操作

merge into应用:实现 无则insert插入,有则update更新,一条语句直接进行insert/update操作

merge ino语法:

    MERGE INTO  table1 alias1 
          USING  (table2|view2|sub_query2) alias2
          ON  (join condition) 
      WHEN MATCHED THEN 
          UPDATE  table1 
                SET  col1 = col_val1, 
                     col2  = col2_val 
      WHEN NOT MATCHED THEN 

               INSERT (column_list) VALUES (column_values); 


--将总公司sstl的客户信息occ_file数据表和子公司sstl_dx的客户信息occ_file核对
--如果sstl_dx公司的客户信息和sstl不同,则依据sstl客户信息更新sstl_dx的客户信息
--如果sstl_dx公司没有,则将sstl的客户信息新增入sstl_dx公司
    MERGE INTO sstl_dx.occ_file dx_occ
          USING sstl.occ_file sstl_occ
          ON(dx_occ.occ01 = sstl_occ.occ01)
        WHEN MATCHED THEN
          update
            set dx_occ.occ02 = sstl_occ.occ02,
                dx_occ.occ03 = sstl_occ.occ03,
                dx_occ.occ04 = sstl_occ.occ04,
                dx_occ.occ05 = sstl_occ.occ05,
                ...
            where dx_occ.occacti = 'Y'
        WHEN NOT MATCHED THEN
          insert
            values(sstl_occ.occ01,sstl_occ.occ02,sstl_occ.occ03,sstl_occ.occ04,sstl_occ.occ05,...)
            where sstl_occ.occacti = 'Y';


  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值