2010-04-06 41 views
6

Tôi đang cố gắng căn chỉnh đầu ra của một số mã PL/SQL, nhưng dbms_output.put_line đang cắt bớt khoảng trống hàng đầu từ các chuỗi của tôi. Làm thế nào để làm cho nó dừng lại? Hoặc là có một cách tốt hơn để sản xuất dây với khoảng trắng hàng đầu?Làm cách nào để ngăn chặn dbms_output.put_line khỏi việc cắt bớt khoảng trắng hàng đầu?

dbms_output.put_line(lpad('string', 30, ' ')); 

kết quả đầu ra:

string 

thay vì:

     string 

Trả lời

14

Vấn đề không phải là với dbms_output nhưng với SQL * Plus.

Sử dụng

SET SERVEROUTPUT ON FORMAT WRAPPED 

hoặc

SET SERVEROUTPUT ON FORMAT TRUNCATED 

để bảo tồn không gian.


Từ documentation (PDF) của SET SERVEROUT WORD_WRAPPED (đó là tiêu chuẩn):

SQL * Plus trái biện minh cho mỗi dòng, bỏ qua tất cả các khoảng trắng hàng đầu.

3

Có thể thêm rằng nếu bạn muốn giữ không gian hàng đầu nhưng cắt không gian cuối sử dụng: đặt trimspool trên trong sql của bạn. Bằng cách này, các không gian hàng đầu sẽ được giữ nguyên nhưng độ dài của dòng sẽ được xác định bởi độ dài văn bản thực tế trong đầu ra.

Các vấn đề liên quan