我们在平时的工作中可能遇到过
多表级联更新
我也在网上看到过不少的方法
但是使用这些方法一般都没成功过
所以今天我给大家介绍一种稍微麻烦的方法
有需要的朋友可以参考下
用游标实现我觉得绝对这种方法比较安全的
首先定一个游标把需要用到的一些数据存放到游标中:
复制代码 代码如下:
declare
CURSOR D_CURSOR_CUS_INFO IS
select t
id_ as id_
t
owe_money_ as owe_money_
a
heatingArea as heating_area_
from T_CUS_OWE_MONEY_
t
left join T_CUS_OWE_MONEY_
t
on t
id_= t
id_
left join (select s
bh
sum(
case
when s
stkbz=
then nvl(s
mj
)
when s
stkbz=
then
nvl(s
mj
)
end
) as heatingArea from sk s where s
nd =
group by s
bh) a on t
bh_=a
bh
where t
owe_money_
t
owe_money_ = a
heatingArea*
and t
OWE_MONEY_ >
;
然后循环游标对数据进行更新
复制代码 代码如下:
begin
FOR everyRow IN D_CURSOR_CUS_INFO
loop
update T_CUS_YEAR_STATUS t
set tHEATING_AREA_ = everyRowHEATING_AREA_
tOWE_MONEY_ = everyRowowe_money_
where tYEAR_ =
and tid_ = everyRowid_;
end loop;
commit;
end;