[20260603]sqlplus set linesize window使用注意.txt
--//18c开始增加set linesize window,可以自动适用当前打开的窗口大小,但是实际上同时也修改pagesize的大小。
1.环境:
SCOTT@book01p> @ ver2
==============================
PORT_STRING : x86_64/Linux 2.4.xx
VERSION : 21.0.0.0.0
BANNER : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
BANNER_FULL : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
BANNER_LEGACY : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
CON_ID : 0
PL/SQL procedure successfully completed.
2.测试:
--//初始化如下:
SCOTT@book01p> show linesize pagesize
linesize 269
pagesize 50000
SCOTT@book01p> set linesize window
SCOTT@book01p> show linesize pagesize
linesize 272 WINDOW
pagesize 76
--//可以发现执行set linesize window,其pagesize也发生变化.
--//拉动窗口上下,缩小窗口大小,长度不变:
SCOTT@book01p> show linesize pagesize
linesize 272 WINDOW
pagesize 57
--//可以发现pagesize大小发生变化.
--//拉动窗口左右,缩小窗口大小,宽度不变:
SCOTT@book01p> show linesize pagesize
linesize 218 WINDOW
pagesize 57
--//可以发现linesize大小发生变化.
--//换一句话讲set linesize window不仅仅适应窗口大小,修改linesize的大小,还同时修改pagesize的大小.
--//或者讲也同时实现类似set pagesize window的功能。
3.写一个脚本单独修改linesize。
--//linux下查询$COLUMNS $LINES变量可以获得当前窗口大小。
$ echo $COLUMNS $LINES
218 57
SCOTT@book01p> host echo $COLUMNS $LINES
--//通过host查询没有结果,不能通过该变量获得linesize值。
--//简单写一个脚本实现仅仅修改linesize的功能,缺点是窗口大小变化时需要手工执行,而且仅仅在linux下可用,其他unix没法测试。
$ cat linesize.sql
-- set linesize according to stty size or tput cols
-- host echo set linesize $(stty size | cut -d" " -f2) | tee /tmp/linesize.sql
host echo set linesize $(tput cols) |tee /tmp/linesize.sql
@ /tmp/linesize.sql
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3173113/ ,如需转载,请注明出处,否则将追究法律责任。