Oracle多表级联更新详解
编程学习 2021-07-05 16:08www.dzhlxh.cn编程入门
我们在平时的工作中可能遇到过,多表级联更新,我也在网上看到过不少的方法,但是使用这些方法一般都没成功过,所以今天我给大家介绍一种稍微麻烦的方法,有需要的朋友可以参考下
用游标实现,我觉得绝对这种方法比较安全的。
--首先定一个游标把需要用到的一些数据存放到游标中:
代码如下:
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中的不等于号
编程语言
- Win10 PC创意者更新慢速版15048改进内容与已知问题
- 用纯CSS3实现网页中常见的小箭头
- 神舟笔记本问题集锦
- Bellnames常用操作说明
- 揭秘手机淘宝搜索排序的影响因素
- XHTML入门学习教程-网页Head和DTD
- 笔记本光驱保养常用知识
- hzhost虚拟主机系统致命漏洞
- 电脑无线网络出现红色叉叉无线网卡打不开的六
- 16项评比不得不看 机箱哪些功能最实用
- AI怎么绘制一个呲牙的qq表情-
- 红帽指点杆机械键盘 TEX Yoda上手体验测评
- 笔记本电脑保养常识有哪些-笔记本保养常识总结
- cdr怎么设计圆角矩形效果的图标-
- 在XSLT样式表中声明命名空间小结
- Fireworks教程-常用操作技巧总结