• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Oracle多表级联更新详解

    用游标实现,我觉得绝对这种方法比较安全的。
    --首先定一个游标把需要用到的一些数据存放到游标中:

    复制代码 代码如下:

    declare
      CURSOR D_CURSOR_CUS_INFO IS
        select t3.id_           as id_,
               t3.owe_money_    as owe_money_,
               a.heatingArea    as heating_area_
        from T_CUS_OWE_MONEY_2 t2
        left join T_CUS_OWE_MONEY_3 t3 on t2.id_= t3.id_
        left join (select s.bh,  sum(
               case
                     when s.stkbz='0' then nvl(s.mj,0)
                     when s.stkbz='1' then 0-nvl(s.mj,0)
               end
          ) as heatingArea from  sk s  where s.nd = '2008-2009' group by s.bh) a on t2.bh_=a.bh
      where  t3.owe_money_- t2.owe_money_  = a.heatingArea*5 and t3.OWE_MONEY_ > 0;

    --然后循环游标对数据进行更新:
    复制代码 代码如下:

    begin
            FOR everyRow IN D_CURSOR_CUS_INFO
            loop
             update T_CUS_YEAR_STATUS t
                 set t.HEATING_AREA_ = everyRow.HEATING_AREA_,
                     t.OWE_MONEY_    = everyRow.owe_money_
                 where t.YEAR_ = '2008-2009'
                       and t.id_ = everyRow.id_;
           end loop;
          commit;
    end;

    您可能感兴趣的文章:
    • 解析Oracle中多表级联删除的方法
    • Oracle中多表关联批量插入批量更新与批量删除操作
    • 关于Oracle多表连接,提高效率,性能优化操作
    • Mysql、Oracle中常用的多表修改语句总结
    • Oracle多表查询中间表的创建实例教程
    上一篇:探讨Oracle中的号问题
    下一篇:解析Oracle中多表级联删除的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Oracle多表级联更新详解 Oracle,多表级,联,更新,详解,