SQLPlus(oracle 客户端)上以块形式返回的行

Rows returned in blocks on SQLPlus (oracle client)

以下查询在 Oracle SQL 开发人员中使用时工作得很好

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

您已经在使用 set linesize - 事实上两次,您将其设置为 1000,然后立即减少到 150:

SET LINES 1000
SET LINESIZE 150

我怀疑您可能期望第一个设置是行数,而不是每行的长度,但它们是相同的设置 - 一个只是缩短的版本。

要设置每个块或页面中的行数,请改用 slightly-related set pagesize,例如:

SET PAGESIZE 1000
SET LINESIZE 150

默认值为 14,这意味着您得到 11 行数据,加上 header 行,下划线的行,以及页面之间的空白行。

如果您将 pagesize 设置为零,那么所有结果都将在一个 'page' 中,无论您有多少行输出;但这也会抑制列标题。

Read more about setting page dimensions.