在SQL*Plus环境中,行的显示宽度默认为80个字符,但如果将行宽度值设置得更宽,比如设置为set line 200之后,就会出现这样的问题:当列的显示字符比所指定的宽度少时系统用空格替代。

✿ 问题的提出

在SQL*Plus环境下用set line nnn指定了行的显示宽度后,Oracle会自动将不足这个宽度的列的末尾用空格来替代,那么如何使系统按照列的实际字符来显示(去掉每行后面的空格)呢?

✿ 实现技术

要实现列按照指定的宽度显示,又不需要在后面增加多余的空格,可使用SET TRIMSPOOL ON命令来实现。这个命令的含义是“截断后面的空格”的意思。

✿ 实现步骤

先用SQL*Plus登录到Oracle实例,在使用查询语句之前,先用SET TRIMSPOOL ON激活截断空格,然后再执行查询语句即可,如:

SQL> set  trimspool on
col  USERNAME    for  a20
col  DEFAULT_TABLESPACE   for  a20
col  TEMPORARY_TABLESPACE    for  a20
col  PROFILE    for  a20
select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE,
PROFILE,CREATED  FROM dba_users;

✿ 说明

默认情况下,行截断功能是处于屏蔽状态(不截断后面的空格),如果希望结果按照对齐的格式显示,可不使用此命令或取消此指定,可用SET TRIMSPOOL OFF来取消原来的指定。