我更喜欢的是要出现的水平滚动条,要么以某种方式将输出发送到更少
我在sqlPlus中运行以下语句 –
SET LINESIZE 32000; SET PAGESIZE 40000; SET LONG 50000; SPOOL output.txt SELECT * FROM big_table;
然后在bash我跑 –
less output.txt
如果你的观众少于-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的最大值是32767.如果将LINESIZE设置为无效值并检查错误消息,则可以找到最大值
所以SET LINESIZE 0可能会给SP2-0267:lineize选项0超出范围(1到32767)(1)
> SET TRIMSPOOL ON否则假脱机文件中的每一行都填充空白,直到达到线条大小.
>设置TRIMOUT ON否则输出中的每一行都填充空白,直到达到线条大小.
> SET WRAP OFF如果行长于LINESIZE,则截断该行.如果lineize足够大,则不应该发生这种情况.
> SET TERMOUT OFF禁止将结果打印到输出.
这些行仍然写入假脱机文件.这可能会大大加快声明的开始时间.
> SET PAGESIZE 0设置无限页面大小并避免标题,标题等.
>还有一些其他SET参数涉及输出(NUMWIDTH,NUMFORMAT,LONG,COLSEP)和性能(ARRAYSIZE,LONGCHUNKSIZE).
您必须使用COLUMN命令格式化单个列.
例如.列名格式a30将格式化输出中的列名称,最大长度为30个字符.
如果您希望显示大小不被修复,但它应该等于行中列的实际值的大小,那么我知道的唯一方法是更改语句的select子句以获得所需的结果并使用该
字符串连接运算符||,例如
select emp_id||' '||first_name||' '||last_name from emp;
有关所有变量的完整说明,请参见SQL*Plus User’s Guide and Reference.
如果要重用某些设置(或COLUMN定义),可以将它们存储在文件中,并在需要时再次运行此文件.如果启动sqlplus,您甚至可以自动运行此文件.
(1)“如何找到LINESIZE最大值(它取决于系统)(Doc ID 1547262.1)”