Non ho idea del motivo per cui stai ricevendo l'errore dei sinonimi. Ma è molto codice per qualcosa che dovrebbe essere una singola istruzione DELETE. Presumo che tu l'abbia modificato in commit-every-n per evitare errori di rollback. Sarebbe bello se potessi fare in modo che il tuo DBA aumenti lo spazio di annullamento in modo da poter effettivamente fare il lavoro che devi fare. In caso contrario, penso che tu possa ancora renderlo molto più semplice:
LOOP
DELETE FROM log_master
WHERE last_changed_date < :purge_date
AND event_id = :event_id
AND rownum <= :batch_delete_limit
USING purge_date, event_id, l_bulk_collect_limit;
EXIT WHEN SQL%NOTFOUND;
END LOOP;
E puoi aggirare la logica dei tentativi, se lo desideri.
Mi scuso se ho perso qualche sottigliezza che lo rende diverso da quello che stai facendo.