单表数据量大,想删除全部分数据,执行delete 语句where条件,比较慢,使用以下语句。
declare
cursor mycursor is SELECT ROWID FROM Ebk_Bgt_Frame_D_beifen a WHERE a.create_date<='20160904' order by rowid;--------按ROWID排序的Cursor,删除条件是XXX=XXXX,根据实际情况来定。
type rowid_table_type is table of rowid index by pls_integer;
v_rowid rowid_table_type;
BEGIN
open mycursor;
loop
fetch mycursor bulk collect into v_rowid limit 5000; --------每次处理5000行,也就是每5000行一提交
exit when v_rowid.count=0;
forall i in v_rowid.first..v_rowid.last
delete from Ebk_Bgt_Frame_D_beifen where rowid=v_rowid(i);
commit;
end loop;
close mycursor;
END;