parece que o problema é que você precisa excluir milhões de linhas e, portanto, deseja fazê-lo em baches
se sim, isso pode funcionar para você - ele percorrerá e excluirá linhas e confirmará para que você não fique sem desfazer e não precise se preocupar em bloquear linhas
begin
loop
delete from xx where yyy=zzz and rownum < 1000;
exit when sql%rowcount = 0;
commit;
end loop;
commit;
end;
/