oracle中按指定条数批量处理的方法
示例
--每处理10000条提交一次
loop
insert into t2
select * from t1 where rownum <= 10000; --每次插入10000条
delete from t1 where rownum <= 10000; --每次删除10000条
v_rowcount := sql%rowcount;
commit;
exit when v_rowcount < 10000; --如果提交条数小于10000,说明已经是最后一次处理
end loop;
附加sql%四种属性说明
sql%NOTFOUND --update,delete操作时没找到符合条件的记录。
sql%FOUND --SELECT columnname INTO ,update,delete找到符合条件的记录Top
sql%rowcount --判定当前更新记录数
sql%isopen --判定当前游标是否打开