展会信息港展会大全

Oracle多表级联更新详解
来源:互联网   发布日期:2016-01-28 13:13:20   浏览:1798次  

导读:我们在平时的工作中可能遇到过,多表级联更新,我也在网上看到过不少的方法,但是使用这些方法一般都没成功过,所以今天我给大家介绍一种稍微麻烦的方法,有需要的朋友可以参考下用游标实现,我觉得绝对这...

我们在平时的工作中可能遇到过,多表级联更新,我也在网上看到过不少的方法,但是使用这些方法一般都没成功过,所以今天我给大家介绍一种稍微麻烦的方法,有需要的朋友可以参考下

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

复制代码 代码如下:

declare

CURSOR D_CURSOR_CUS_INFO IS

select t3.id_as id_,

t3.owe_money_as owe_money_,

a.heatingAreaas 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 fromsk swhere s.nd = '2008-2009' group by s.bh) a on t2.bh_=a.bh

wheret3.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;

赞助本站

人工智能实验室

相关热词: 开发 编程 android

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港