用游標實現(xiàn),我覺得絕對這種方法比較安全的。
--首先定一個游標把需要用到的一些數(shù)據(jù)存放到游標中:
復(fù)制代碼 代碼如下:
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;
--然后循環(huán)游標對數(shù)據(jù)進行更新:
復(fù)制代碼 代碼如下:
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中多表級聯(lián)刪除的方法
- Oracle中多表關(guān)聯(lián)批量插入批量更新與批量刪除操作
- 關(guān)于Oracle多表連接,提高效率,性能優(yōu)化操作
- Mysql、Oracle中常用的多表修改語句總結(jié)
- Oracle多表查詢中間表的創(chuàng)建實例教程