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批量处理数据

Oracle大量数据更新策略

oracle数据库,PLS-S-01705, 如果游标说明中有 UNION 或 ORDER_BY, 则由游标指定的表不可更新

PLSQL游标批量更新数据问题

在 oracle 中使用游标插入和更新记录

mysql使用游标遍历数据进行批量针对性更新数据,急求mysql大神解答