Zní to, že problém je v tom, že musíte smazat miliony řádků, a tak to chcete udělat v dávkách
pokud ano, mohlo by vám to fungovat – bude to procházet a mazat řádky a odevzdávat, takže vám nedojde možnost vrátit zpět a nemusíte se starat o zamykání řádků
begin
loop
delete from xx where yyy=zzz and rownum < 1000;
exit when sql%rowcount = 0;
commit;
end loop;
commit;
end;
/