源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Oracle多表级联更新详解

  • 时间:2020-08-02 18:51 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Oracle多表级联更新详解
[b]用游标实现,我觉得绝对这种方法比较安全的。 [/b]--首先定一个游标把需要用到的一些数据存放到游标中:
[u]复制代码[/u] 代码如下:
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;
--然后循环游标对数据进行更新:
[u]复制代码[/u] 代码如下:
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;
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部