oracle更新大量数据太慢,可以通过游标实现的例子
Posted LittlePenguin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle更新大量数据太慢,可以通过游标实现的例子相关的知识,希望对你有一定的参考价值。
declare cursor city_cur is
select t.new_customer_id,t.old_customer_id from
citsonline.crm_customer_tmp6 t
where t.new_customer_id!=t.old_customer_id
order by new_customer_id;
begin
for my_cur in city_cur loop
update platform.crm_service_customer_bak s
set s.customer_id=my_cur.new_customer_id
where s.customer_id=my_cur.old_customer_id;
/** 此处也可以单条/分批次提交,避免锁表情况 **/
if mod(city_cur%rowcount,1000)=0 then
dbms_output.put_line(‘----‘);
commit;
end if;
end loop;
commit;
end;
以上是关于oracle更新大量数据太慢,可以通过游标实现的例子的主要内容,如果未能解决你的问题,请参考以下文章
oracle数据库,PLS-S-01705, 如果游标说明中有 UNION 或 ORDER_BY, 则由游标指定的表不可更新