Här är ett exempel som visar beteendet du ser:
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.
dokumentationen säger "SQL*Plus anropar GET_LINES efter att ha utfärdat en SQL-sats eller anonyma PL/SQL-anrop."
Och proceduren GET_LINES säger "Denna procedur hämtar en array av linjer från bufferten."
Med PUT har du inte slutfört din linje ännu. Så det skrivs inte ut.
NEW_LINE-proceduren nämner detta också:"Denna procedur sätter en radslutmarkör. GET_LINE-proceduren och GET_LINES-proceduren returnerar "linjer" som avgränsade av "nylinjer". Varje anrop till PUT_LINE-proceduren eller NEW_LINE-proceduren genererar en linje som returneras av GET_LINE(S)."
Hälsningar,
Rob.