Строки, возвращаемые в блоках на SQLPlus (клиент Oracle) - PullRequest
1 голос
/ 22 мая 2019

следующий запрос прекрасно работает при использовании в Oracle SQL Developer:

SET ECHO OFF
SET FEEDBACK OFF
SET LINES 1000
SET LINESIZE 150

COLUMN URL FORMAT a54

SELECT DISTINCT RPAD (ROUTE.URL, 54) URL
FROM ROUTE
ORDER BY URL ASC;

Но, по какой-то причине, в моем SQLPlus строки результата разбиваются на блоки из 11 строк:

URL
-------
url-1
url-2
url-3
...
url-11

URL
-------
url-12
url-13
url-14
...
url-22

etc..

Почему это происходит? и как я могу получить результаты в одном блоке?

Я использую SQLPlus 11.2.0.3.0

1 Ответ

2 голосов
/ 22 мая 2019

Вы уже используете set linesize - фактически дважды вы устанавливаете его на 1000, а затем сразу уменьшаете до 150:

SET LINES 1000
SET LINESIZE 150

Я подозреваю, что вы, возможно, ожидали, что первая настройка будет числом строк, а не длиной каждой строки, но они одинаковы - одна просто сокращенная версия.

Чтобы установить количество строк в каждом блоке или странице, используйте слегка связанный set pagesize, например ::

SET PAGESIZE 1000
SET LINESIZE 150

Значением по умолчанию является 14, что означает, что вы получите 11 строк данных, плюс строку заголовка, строку под строкой с тире и пустую строку между страницами.

Если вы установите pagesize в ноль, тогда все результаты будут на одной «странице», сколько бы строк вы не имели; но это также подавляет заголовки столбцов.

Подробнее о настройке размеров страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...