update 表的数据量比较大的时候尽量使用批量提交方法,加快处理速度,批量提交的参考脚本如下:
declare
-- 数组变量,保存查询条件
TYPEt_idISTABLEOFxx.test.id%TYPE;
v_t_idt_id;
CURSOR c IS
SELECTidFROMxx.testwhere xxx <> 333;
BEGIN
OPEN c;
LOOP
-- 批量更新,一次更新10000条数据
fetch c bulkcollect
intov_t_idLIMIT10000;
-- 这里用forall效率更高
FORALLiIN1 .. v_t_id.COUNT
UPDATExx.testSET xxx = 333WHEREid = v_t_id(i);
-- 提交
COMMIT;
-- 循环退出
exitwhenc%NOTFOUND;
ENDLOOP;
COMMIT;
end;