你真的会在SQL Plus中设置行宽吗?
2025-10-13 16:38 潇湘隐者 阅读(0) 评论(0) 收藏 举报在使用SQL Plus命令行时,经常会要设置行宽(linesize),展示的格式才能美观一些.但是你真的对行宽设置都理解透彻了吗?
SET LINESIZE 320
上面320表示的是字符的个数.这个命令的核心意义在于 ** 控制 SQLPlus 输出的每一行的最大宽度/字符个数 **。因为你的屏幕或终端窗口的宽度是有限的。如果查询结果中的一行数据(比如一个包含很多列的表)非常长,超出了这个宽度,输出就会自动换行(折行显示),导致下一行的数据紧跟在上一行的末尾,而不是从新的一行开始。这会使查询结果的显示格式变得极其混乱,难以阅读查看。SET LINESIZE 就是为了解决这个问题而生的。
那么调整了LINESIZE值,增加宽度后,就能解决问题吗? 有时候,你会发现即使你调大LINESIZE的值似乎没有任何'效果', 那么为什么呢? 因为我们一般用SecureCRT或Putty等工具,其实这些工具也有一些设置限制行宽.
你可以用下面shell命令查看一行显示多少字符,如下所示:
$ stty size
50 164
该命令会用于显示当前终端窗口的大小,包括行数和列数,格式为rows columns。其中,列数表示每行可以显示的字符数。
$ tput cols
164
tput 命令也可以用来获取终端大小. tput cols用来显示列数.
我们以SecureCRT这个工具为例子,如下所示
-
首先全局设置:Options - Global Options - Terminal - Appearance - Maximum columns 最大只能设置成1024(推荐255),设置越大越占用内存,并选上show horizontal scrollbar,然后重启SecureCRT. 记住,全局设置生效必须重启SecureCRT.
-
然后session设置:Options - Session Options - Terminal - Emulation - Logical Columns设置成255(推荐255,主要是因为SQL Plus里DBMS_OUTPUT.put_line最多显示255字符限制,这里最大值只能设置成上面Maximum columns大小,并选上Retain size and font)、Scrollbackbuffer设置成6000(这样纵向滚动屏就可以缓存更多内容,但占内存),另外,Terminal - Appearance - Window -选上Show horizontal scroll bar,然后重新连接。当然,你也者也可以在Options - Edit Default Session中设置,这样就可以设置所有的Session.
此时再执行上面命令,你就可以看到行的宽度设置成了255了. 如下所示:
$ tput cols
255
$ stty size
31 255
再回到之前SQL Plus命令中的linesize设置,即使你将linesize设置成了720/680这样大的值,其实受限于SecureCRT的设置,它根本没有生效.因为linesize的值优先级没有SecureCRT的设置的优先级高.它们的优先级为: session设置(Logical Columns)> 全局设置(Maximum columns) > linesize设置.
另外,在SecureCRT中,有些设置值,字体大小和字体类型也会影响行宽设置.此时建议你最好勾选"保留大小和字体"(Retain size and font)."保留大小和字体"(Retain size and font)选项将使SecureCRT保持字体大小不变,这样任何额外的文本都会出现在屏幕之外,允许你滚动查看。你还可以手动调整窗口大小,而不会影响字体大小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/936252.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!