Niet echt. De manier waarop DBMS_OUTPUT werkt, is als volgt:Uw PL/SQL-blok wordt uitgevoerd op de databaseserver zonder interactie met de client. Dus als je PUT_LINE aanroept, wordt die tekst gewoon in een buffer in het geheugen op de server geplaatst. Wanneer uw PL/SQL-blok is voltooid, wordt de controle teruggegeven aan de client (in dit geval neem ik aan dat SQLPlus); op dat moment haalt de client de tekst uit de buffer door GET_LINE aan te roepen, en geeft deze weer.
Dus de enige manier waarop u de uitvoer vaker in het logbestand kunt laten verschijnen, is door een groot PL/SQL-blok op te splitsen in meerdere kleinere blokken, zodat de controle vaker aan de client wordt teruggegeven. Dit is misschien niet praktisch, afhankelijk van wat je code doet.
Andere alternatieven zijn om UTL_FILE te gebruiken om naar een tekstbestand te schrijven, dat kan worden leeggemaakt wanneer u maar wilt, of om een autonome transactieprocedure te gebruiken om foutopsporingsinstructies in een databasetabel in te voegen en na elk ervan vast te leggen.