Понятия не имею, почему вы получаете ошибку синонима. Но это много кода для того, что должно быть одним оператором DELETE. Я предполагаю, что вы изменили его на commit-every-n, чтобы избежать ошибок отката. Было бы неплохо, если бы вы могли заставить своего администратора баз данных увеличить пространство для отмены, чтобы вы могли фактически выполнять ту работу, которую вам нужно сделать. В противном случае, я думаю, вы все еще можете сделать это намного проще:
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;
И вы можете использовать свою логику повторных попыток, если хотите.
Извинения, если я пропустил некоторые тонкости, которые отличают это от того, что вы делаете.