Hier is een voorbeeld dat het gedrag laat zien dat u ziet:
SQL> exec dbms_output.put_line('hello')
hello
PL/SQL procedure successfully completed.
SQL> exec dbms_output.put('hello again')
PL/SQL procedure successfully completed.
SQL> exec dbms_output.put(' and again')
PL/SQL procedure successfully completed.
SQL> exec dbms_output.new_line
hello again and again
PL/SQL procedure successfully completed.
De documentatie zegt "SQL*Plus roept GET_LINES aan na het uitgeven van een SQL-instructie of anonieme PL/SQL-aanroepen."
En procedure GET_LINES zegt:"Deze procedure haalt een reeks regels op uit de buffer."
Met PUT heb je je regel nog niet voltooid. En dus drukt het niet af.
De NEW_LINE procedure vermeldt dit ook:"Deze procedure plaatst een end-of-line marker. De GET_LINE Procedure en de GET_LINES Procedure retourneren "lines" zoals begrensd door "newlines". Elke aanroep naar de PUT_LINE Procedure of NEW_LINE Procedure genereert een lijn dat wordt geretourneerd door GET_LINE(S)."
Met vriendelijke groet,
Rob.