Мы можем установить размер строки на большое число.Размер зависит от операционной системы, хотя я подозреваю, что большинство ОС будет поддерживать до 32 КБ.Это из Windows ....
SQL> set linesize 10000
SQL> set linesize 32767
SQL> set linesize 999999
SP2-0267: linesize option 999999 out of range (1 through 32767)
SQL>
Если у вас XML-текст длиннее, значит, вам не повезло.
Вы не говорите, почему вы используете SQL * Plus.Это потому, что вам нужен вывод на клиенте, а не на сервере базы данных, или потому, что вы не знаете другого способа выписать файл?
Если вы можете написать на сервер, есть альтернативы.UTL_FILE по-прежнему имеет ограничение на размер строки в 32767 символов, но по крайней мере мы должны выполнить некоторые программные операции, чтобы гарантировать, что строка не будет обрезана в середине тега.
Однако, вероятно, лучшим решением является использование DBMS_XSLPROCESSOR.CLOB2FILE () , который является частью функциональности XMLDB.
Для полноты связанных параметров SQL * Plusколлега copaX рекомендует:
PAGE
- установка этого значения в ноль подавляет заголовки и предотвращает выбросы страниц в выводе
ECHO
- контролирует, отображается ли оператор SQL при запуске сценария
Оба PAGE' and
ECHO` настроены так, чтобы избежать постороннего текста в выводе.По этой же причине часто задается следующий параметр
FEEDBACK
- определяет, будет ли отображаться число строк в конце запроса
LONG
- определяет количество отображаемого длинного текста
LONGCHUNKSIZE
- контролирует количество длинного текста, отображаемого перед переносом столбца
TRIMSPOOL
- удаляет пробелы, права на которые дополняют строку до значения LINESIZE
LONG
и LONGCHUNKSIZE
shoudlустановите одно и то же значение, чтобы весь столбец отображался в одной выходной строке.
Все эти параметры и многое другое объяснено в документации .