数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle多表级联更新详解


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

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

复制代码 代码如下:
declare
CURSOR D_CURSOR_CUS_INFO IS
select tid_ as id_
towe_money_ as owe_money_
aheatingArea as heating_area_
from T_CUS_OWE_MONEY_ t
left join T_CUS_OWE_MONEY_ t on tid_= tid_
left join (select sbh sum(
case
when sstkbz= then nvl(smj)
when sstkbz= then nvl(smj)
end
) as heatingArea from sk s where snd = group by sbh) a on tbh_=abh
where towe_money_ towe_money_ = aheatingArea* and tOWE_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;

上一篇:Oracle数据库入门之函数/类型

下一篇:oracle case when的使用方法