如何查看当前会话环境变量
SQL*Plus 环境存储有许多控制会话所用的环境的行为,比如显示行的宽度、显示屏幕的行数量等。你可在登录成功后查看和修改这些环境变量。
✿问题的提出
当你登录到SQL>环境时,你需要了解SQL*Plus默认的环境变量的值什么,从而修改某些变量来满足你的要求。
✿实现技术
你成功登录到SQL*Plus后,可使用show all命令来显示目前SQL*Plus环境变量的值。
✿实现步骤
在SQL>提示下,可用show all 来实现,如:
-- --适应版本:Oracle 9i~12c -- SQL> --查看所有的参数当前值: SQL> show all appinfo 为 OFF 并且已设置为 "SQL*Plus" arraysize 15 autocommit OFF autoprint OFF … …
|
✿说明
当你在刚登录成功后就使用show all显示的是默认的SQL*Plus参数,但是你可以修改这些变量,当你修改后再用show all看到的目前最新的环境变量。你所修改的变量只能是本次会话有效。
如何设置屏幕行的宽度和显示行数
默认情况,SQL>环境的许多环境变量都偏小,比如显示行的宽度默认是80个字符、每屏幕的行数量是24行等。
✿问题的提出
当你登录到SQL>环境时,SQL*Plus默认的环境变量一般都偏小,如果你希望你的查询结果显示整齐好看,你就得修改屏幕的显示行数量和行的宽度,那么,如何修改才能生效呢?
✿实现技术
要将行宽默认的80个字符修改大些以满足你的要求,可随时使用set linesize命令加参数值来实现。
✿实现步骤
要修改某个参数,可用Set Para_name Values 来实现,如:
-- --适应版本:Oracle 9i~12c -- SQL>--显示行宽(Linesize)参数当前值: SQL> show linesize linesize 80 SQL>--修改行宽(Linesize)参数值为198个字符-这里只用line,可不使用linesize : SQL> set line 198 SQL> show linesize linesize 198 -- --查看当前屏幕显示的行数量 SQL> show pagesize pagesize 14 SQL> select ename,sal from emp;
ENAME SAL ---------- ---------- 赵元杰 4500 SMITH 800 ALLEN 1600 WARD 1250 ... JAMES 950 FORD 3000 MILLER 1300
已选择15行。 SQL> set pages 40 SQL> /
ENAME SAL ---------- ---------- 赵元杰 4500 SMITH 800 ALLEN 1600 ... JAMES 950 FORD 3000 MILLER 1300
已选择15行。 |
✿说明
这里需要指出的是,Oracle 环境变量的名词可以使用缩写,比如上面linesize是完成的拼写,可使用line 来替代linesize,比如:set line 180 ;另外可用set pagesize n 来设置每屏显示行数量,但建议不要将显示行设置过大,因为过大你会看不到标题提示而不知道某个列的含义。
如何截断查询结果后面的空格
在SQL*Plus环境中,行的显示宽度默认为80个字符,但如果你将行宽度值设置为更宽的,比如设置为 set line 200 之后,就会出现这样的问题:当列的显示字符比所指定的宽度少时系统用空格替代。
✿问题的提出
在SQL*Plus环境下用set line nnn指定了行的显示宽度后,Oracle会自动将不足这个宽度的列的末尾用空格来替代,那么如何使系统按照列的实际的字符来显示(去掉每个行后面这些空格)呢?
✿实现技术
要实现列按照指定的宽度显示,又不需要在后面增加多余的空格,可使用SET TRIMSPOOL ON命令来实现。这个命令的含义是“截断后面的空格”的意思。
✿实现步骤
在使用查询语句之前,先用SET TRIMSPOOL ON激活截断空格,然后再执行查询语句即可,如:
-- --适应版本:Oracle 9i~12c -- 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 来取消原来的指定。
Oready即为“One Technology Ready”!
Oready不仅仅是数据库领域的专家,同时也是一个社区,我们汇集百位数据库领域资深顾问、讲师,服务于数据中心的技术支持与技能传授,注重对客户的关键数据库运营支撑,强调经验的分享-Skill Transfer,聚焦数据中心的完美结合.