Dưới đây là một ví dụ cho thấy hành vi bạn đang thấy:
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.
tài liệu cho biết "SQL * Plus gọi GET_LINES sau khi phát hành câu lệnh SQL hoặc lệnh gọi PL / SQL ẩn danh".
Và thủ tục GET_LINES cho biết "Thủ tục này lấy một mảng dòng từ bộ đệm."
Với PUT, bạn vẫn chưa hoàn thành dòng của mình. Và vì vậy nó không in.
Thủ tục NEW_LINE cũng đề cập đến điều này:"Thủ tục này đặt một điểm đánh dấu cuối dòng. Thủ tục GET_LINE và Thủ tục GET_LINES trả về" dòng "được phân tách bằng" dòng mới ". Mọi lệnh gọi đến Thủ tục PUT_LINE hoặc Thủ tục NEW_LINE sẽ tạo ra một dòng được trả lại bởi GET_LINE (S). "
Trân trọng,
Rob.