Oto przykład pokazujący obserwowane zachowanie:
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.
dokumentacja mówi "SQL*Plus wywołuje GET_LINES po wydaniu instrukcji SQL lub anonimowych wywołaniach PL/SQL."
A procedura GET_LINES mówi "Ta procedura pobiera tablicę linii z bufora."
Z PUT nie ukończyłeś jeszcze swojej linii. I dlatego się nie drukuje.
Wspomina o tym również procedura NEW_LINE:„Ta procedura umieszcza znacznik końca linii. Procedury GET_LINE i GET_LINES zwracają „linie” oddzielone „nowymi liniami”. Każde wywołanie procedury PUT_LINE lub procedury NEW_LINE generuje linię który jest zwracany przez GET_LINE(S)."
Pozdrawiam,
Zbój.