Nó không đủ để buộc sqlplus không bọc dòng. Cũng cần phải nói với người xem rằng bạn sử dụng để xem tệp spool không được ngắt dòng. Nếu người xem của bạn là less
sau đó -S
tùy chọn mà bạn phải sử dụng theo
https://superuser.com/questions/272818/how-to-turn-off-word-wrap-in-less . Trên Unix / Linux, bạn có thể sử dụng head -1 output.txt
để lấy dòng đầu tiên của tệp và vì vậy hãy kiểm tra xem đây có phải là mong đợi hay bạn có thể sử dụng od -c output.txt|head
để xem nơi ngắt dòng thực sự được đặt trong tệp đầu ra của bạn.
Nếu bạn hiển thị các cột LONG và các giá trị của chúng chứa các ngắt dòng thì nhiều dòng sẽ được in cho các giá trị cột này và bạn không thể ghi đè lên điều này bằng các cài đặt sqlplus.
Các lệnh sqlplus sau đây có thể hữu ích:
SET LINESIZE linesize
chiều dài của dòng. Trong hầu hết các trường hợp, giá trị tối đa linesize
là 32767. Bạn có thể tìm ra giá trị tối đa của mình nếu bạn đặt LINESIZE thành giá trị không hợp lệ và kiểm tra thông báo lỗi để SET LINESIZE 0
có thể đưa ra SP2-0267: linesize option 0 out of range (1 through 32767)
(1)
SET TRIMSPOOL ON
mặt khác, mọi dòng trong spoolfile đều được lấp đầy bằng các khoảng trống cho đến khi đạt được kích thước đường thẳng.
SET TRIMOUT ON
mặt khác, mỗi dòng trong đầu ra được lấp đầy với khoảng trống cho đến khi đạt được kích thước đường.
SET WRAP OFF
Cắt ngắn dòng nếu nó dài hơn thì LINESIZE. Điều này không nên xảy ra nếu lineize đủ lớn.
SET TERMOUT OFF
ngăn chặn việc in kết quả ra đầu ra Các dòng vẫn được ghi vào tệp spool. Điều này có thể đẩy nhanh thời gian thực hiện của một tuyên bố rất nhiều.
SET PAGESIZE 0
để đặt kích thước trang vô hạn và tránh các tiêu đề, tiêu đề, v.v.
- Có một
SET
số thông số khác liên quan đến đầu ra (NUMWIDTH, NUMFORMAT, LONG, COLSEP) và hiệu suất (ARRAYSIZE, LONGCHUNKSIZE).
Bạn phải sử dụng COLUMN
lệnh để định dạng các cột riêng lẻ.
Ví dụ: column name format a30
định dạng cột name
trong đầu ra với độ dài tối đa 30 ký tự.
Nếu bạn không muốn sửa kích thước hiển thị nhưng nó phải bằng kích thước của giá trị thực của một cột trong một hàng thì cách duy nhất tôi biết là bạn thay đổi mệnh đề chọn của câu lệnh để có kết quả mong muốn và sử dụng toán tử nối chuỗi ||
, vd
select emp_id||' '||first_name||' '||last_name
from emp;
Có thể tìm thấy mô tả đầy đủ về tất cả các biến trong Hướng dẫn và tham khảo của người dùng SQL * Plus .
Nếu bạn muốn sử dụng lại một số cài đặt (hoặc định nghĩa CỘT), bạn có thể lưu trữ chúng trong một tệp và chạy tệp này khi bạn cần lại chúng. Bạn thậm chí có thể chạy tệp này tự động nếu bạn bắt đầu sqlplus.
(1) "Cách tìm giá trị tối đa LINESIZE (Đó là phụ thuộc hệ thống) (ID tài liệu 1547262.1)"