oracle – 如何使sqlplus输出出现在一行?

前端之家收集整理的这篇文章主要介绍了oracle – 如何使sqlplus输出出现在一行?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个100列的表.在sql Plus中选择数据时,输出会包装,使其难以阅读.

我更喜欢的是要出现的水平滚动条,要么以某种方式将输出发送到更少

我在sqlPlus中运行以下语句 –

SET LINESIZE 32000;
SET PAGESIZE 40000;
SET LONG 50000;
SPOOL output.txt
SELECT * FROM big_table;

然后在bash我跑 –

less output.txt

输出仍然显示包装且不可读.

仅强制sqlplus不包裹行是不够的.还有必要告诉查看器您使用查看假脱机文件而不是换行.
如果你的观众少于-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)”

原文链接:https://www.f2er.com/oracle/205350.html

猜你在找的Oracle相关文章