Oracle多表级联更新详解
Oracle多表级联更新详解
发布时间:2016-12-28 来源:查字典编辑
摘要:用游标实现,我觉得绝对这种方法比较安全的。--首先定一个游标把需要用到的一些数据存放到游标中:复制代码代码如下:declareCURSORD...

用游标实现,我觉得绝对这种方法比较安全的。

--首先定一个游标把需要用到的一些数据存放到游标中:

复制代码 代码如下:

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教程学习
编程开发子分类