मुझे नहीं पता कि आपको समानार्थी त्रुटि क्यों मिल रही है। लेकिन यह उस चीज़ के लिए बहुत अधिक कोड है जो एक एकल DELETE कथन होना चाहिए। मुझे लगता है कि आपने रोलबैक त्रुटियों से बचने के लिए इसे प्रतिबद्ध-हर-एन में बदल दिया है। यह अच्छा होगा यदि आप पूर्ववत स्थान को बढ़ाने के लिए अपना डीबीए प्राप्त कर सकें ताकि आप वास्तव में वह काम कर सकें जो आपको करने की ज़रूरत है। ऐसा न होने पर, मुझे लगता है कि आप इसे और भी आसान बना सकते हैं:
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;
और यदि आप चाहें तो अपने पुन:प्रयास तर्क को उसके इर्द-गिर्द फेंक सकते हैं।
क्षमा करें यदि मुझसे कुछ सूक्ष्मता छूट गई है जो इसे आपके द्वारा किए जा रहे कार्यों से अलग बनाती है।