概述:
根據公司業務需要,經常會有曆史資料遷移清理的工作,當表是分區表是,比較友善,但是如果不是分區表,經常使用delete操作,但是delete資料庫量大,會遇到很慢,有時會導緻資料庫出現問題,甚至可能出現鎖的問題,是以一般采用存儲過程批量送出删除的方法:如下為存儲過程内容
create or replace procedure pro_del is
v_i number := 0;
begin
for c in (select t.*, rowid nrowid
from RESULT t
where t.CREATE_TIME < to_date(‘201607’, ‘yyyymm’)) loop
delete from RESULT where rowid = c.nrowid;
v_i := v_i + 1;
if (v_i >= 1000) then
commit;
v_i := 0;
end if;
END LOOP;
end pro_del;