Недостатньо змусити sqlplus не обертати лінії. Потрібно також повідомити глядачеві, що ви використовуєте для перегляду файлу котушки, щоб не перегортати рядки. Якщо глядач , less
то -S
варіант , ви повинні використовувати в відповідно до
https://superuser.com/questions/272818/how-to-turn-off-word-wrap-in-less . У Unix / Linux ви можете скористатися head -1 output.txt
для отримання першого рядка файлу, і тому перевірте, чи це так, як очікувалося, або ви можете використовувати, od -c output.txt|head
щоб побачити, де перерви рядків розміщені у вихідному файлі.
Якщо ви відображаєте стовпці LONG, а їх значення містять розриви рядків, для цих значень стовпців буде надруковано декілька рядків, і ви не можете перекрити це налаштуваннями sqlplus.
Наступні команди sqlplus можуть бути корисними:
SET LINESIZE linesize
довжина лінії. У більшості випадків максимальне значення linesize
- 32767. Ви можете дізнатися своє максимальне значення, якщо встановити LINESIZE на недійсне значення і перевірити повідомлення про помилку, щоб воно SET LINESIZE 0
могло дати SP2-0267: linesize option 0 out of range (1 through 32767)
(1)
SET TRIMSPOOL ON
інакше кожен рядок у спілфілі заповнюється пробілами до досягнення розміру рядків.
SET TRIMOUT ON
інакше кожен рядок на виході заповнюється пробілами до досягнення розміру рядків.
SET WRAP OFF
Обрізає лінію, якщо її довше, ніж LINESIZE. Це не повинно статися, якщо розмір ліній досить великий.
SET TERMOUT OFF
пригнічує друк результатів на вихід. Рядки все ще записуються у файл котушки. Це може значно прискорити час виконання заяви.
SET PAGESIZE 0
встановити нескінченний розмір сторінок і уникати заголовків, заголовків тощо.
- Є деякі інші
SET
параметри щодо виходу (NUMWIDTH, NUMFORMAT, LONG, COLSEP) та продуктивності (ARRAYSIZE, LONGCHUNKSIZE).
Ви повинні використовувати COLUMN
команду для форматування окремих стовпців.
Напр. column name format a30
Буде відформатовано стовпець name
у висновку до максимальної довжини 30 символів.
Якщо ви хочете, щоб розмір відображення не був виправленим, але він повинен дорівнювати розміру фактичного значення стовпців у рядку, то єдиний спосіб, який я знаю, це те, що ви змінюєте пункт вибору заяви, щоб отримати бажаний результат і використовувати оператор конкатенації рядків ||
, наприклад
select emp_id||' '||first_name||' '||last_name
from emp;
Повний опис всіх змінних можна знайти в Посібнику та довідці користувача SQL * Plus .
Якщо ви хочете повторно використовувати деякі налаштування (або визначення COLUMN), ви можете зберегти їх у файлі та запустити цей файл, коли вони вам знову знадобляться. Ви навіть можете запустити цей файл автоматично, якщо запустити sqlplus.
(1) "Як знайти максимальне значення LINESIZE (це залежно від системи) (ID документа 1547262.1)"