ज़रुरी नहीं। जिस तरह से DBMS_OUTPUT काम करता है वह यह है:आपका PL/SQL ब्लॉक डेटाबेस सर्वर पर क्लाइंट के साथ बिना किसी इंटरेक्शन के निष्पादित होता है। तो जब आप PUT_LINE को कॉल करते हैं, तो यह केवल उस टेक्स्ट को सर्वर पर मेमोरी में बफर में डाल रहा है। जब आपका पीएल/एसक्यूएल ब्लॉक पूरा हो जाता है, तो क्लाइंट को नियंत्रण वापस कर दिया जाता है (मैं इस मामले में एसक्यूएलप्लस मान रहा हूं); उस समय क्लाइंट GET_LINE पर कॉल करके बफ़र से टेक्स्ट प्राप्त करता है, और उसे प्रदर्शित करता है।
तो लॉग फ़ाइल में आउटपुट को अधिक बार प्रदर्शित करने का एकमात्र तरीका एक बड़े पीएल/एसक्यूएल ब्लॉक को कई छोटे ब्लॉक में तोड़ना है, इसलिए क्लाइंट को अधिक बार नियंत्रण वापस कर दिया जाता है। आपका कोड क्या कर रहा है इसके आधार पर यह व्यावहारिक नहीं हो सकता है।
अन्य विकल्प एक टेक्स्ट फ़ाइल में लिखने के लिए UTL_FILE का उपयोग करना है, जिसे आप जब चाहें फ़्लश कर सकते हैं, या डेटाबेस तालिका में डीबग स्टेटमेंट डालने और प्रत्येक के बाद प्रतिबद्ध करने के लिए एक स्वायत्त-लेनदेन प्रक्रिया का उपयोग कर सकते हैं।