sembra che il problema sia che devi eliminare milioni di righe e quindi vuoi farlo in bacheche
in tal caso, questo potrebbe funzionare per te:eseguirà il ciclo ed eliminerà le righe e il commit in modo da non rimanere senza annullare e non devi preoccuparti di bloccare le righe
begin
loop
delete from xx where yyy=zzz and rownum < 1000;
exit when sql%rowcount = 0;
commit;
end loop;
commit;
end;
/