Ik heb geen idee waarom je de synoniemfout krijgt. Maar dat is veel code voor iets dat een enkele DELETE-instructie zou moeten zijn. Ik neem aan dat je het hebt gewijzigd in commit-every-n om terugdraaifouten te voorkomen. Het zou fijn zijn als u uw DBA de ruimte voor ongedaan maken zou kunnen laten vergroten, zodat u daadwerkelijk het werk kunt doen dat u moet doen. Als dat niet lukt, denk ik dat je het nog veel eenvoudiger kunt maken:
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;
En als je wilt, kun je je logica voor opnieuw proberen er omheen gooien.
Excuses als ik een subtiliteit heb gemist die dit anders maakt dan wat u doet.