ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于sqlplus的显示问题

关于sqlplus的显示问题

原创 Linux操作系统 作者:kofuzj 时间:2012-08-23 15:20:33 0 删除 编辑

 

每每执行sqlplus操作的时候,在select出来的格式,往往让人感到发指,很不友好,如何让select出来的数据排列整齐,看着舒服呢?其实是有办法的,我找到了一种方式,就拿dba_data_files这个视图来看吧。
SQL> desc dba_data_files;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 FILE_NAME                                          VARCHAR2(513)
 FILE_ID                                            NUMBER
 TABLESPACE_NAME                                    VARCHAR2(30)
 BYTES                                              NUMBER
 BLOCKS                                             NUMBER
 STATUS                                             VARCHAR2(9)
 RELATIVE_FNO                                       NUMBER
 AUTOEXTENSIBLE                                     VARCHAR2(3)
 MAXBYTES                                           NUMBER
 MAXBLOCKS                                          NUMBER
 INCREMENT_BY                                       NUMBER
 USER_BYTES                                         NUMBER
 USER_BLOCKS                                        NUMBER
 ONLINE_STATUS                                      VARCHAR2(7)
我们来看file_name,file_id,tablespace_name这三个字段,想必file_name就能让你的dos窗口无所适从了,其长度肯定很难搞定,连着本地的path,长度可想而知,首先来看显示很发指的、不友好输出。
SQL> select file_name,file_id,tablespace_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------
   FILE_ID TABLESPACE_NAME
---------- ------------------------------------------------------------
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BANGEL\SYSTEM01.DBF
         1 SYSTEM

C:\ORACLE\PRODUCT\10.2.0\ORADATA\BANGEL\UNDOTBS01.DBF
         2 UNDOTBS1

C:\ORACLE\PRODUCT\10.2.0\ORADATA\BANGEL\SYSAUX01.DBF
         3 SYSAUX


FILE_NAME
--------------------------------------------------------------------------------
   FILE_ID TABLESPACE_NAME
---------- ------------------------------------------------------------
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BANGEL\USERS01.DBF
         4 USERS

C:\ORACLEDATA\TESTUSER_TS01.DBF
         5 TESTUSER_TS

C:\ORACLEDATA\TESTUSER_TS02.DBF
         6 TESTUSER_TS


已选择6行。
您看这样的输出,是否算发指?太难看了,这让客户怎么接受?可能会有人说,你用toad,借助工具不就完事了嘛?但不是每个客户那边都有toad的license,即使有license,也不是每个你遇到的设备都安装了toad,但每个设备肯定有sqlplus,呵呵。好的,我们如何来让这个输出显示稍微好看一些呢?
先col file_name for a10试试。然后继续查询看看:
SQL> col file_name for a10
SQL> select file_name,file_id,tablespace_name from dba_data_file

FILE_NAME     FILE_ID
---------- ----------
TABLESPACE_NAME
------------------------------------------------------------
C:\ORACLE\          1
PRODUCT\10
.2.0\ORADA
TA\BANGEL\
SYSTEM01.D
BF
SYSTEM

C:\ORACLE\          2

FILE_NAME     FILE_ID
---------- ----------
TABLESPACE_NAME
------------------------------------------------------------
PRODUCT\10
.2.0\ORADA
TA\BANGEL\
UNDOTBS01.
DBF
UNDOTBS1

C:\ORACLE\          3
PRODUCT\10

FILE_NAME     FILE_ID
---------- ----------
TABLESPACE_NAME
------------------------------------------------------------
.2.0\ORADA
TA\BANGEL\
SYSAUX01.D
BF
SYSAUX

C:\ORACLE\          4
PRODUCT\10
.2.0\ORADA

FILE_NAME     FILE_ID
---------- ----------
TABLESPACE_NAME
------------------------------------------------------------
TA\BANGEL\
USERS01.DB
F
USERS

C:\ORACLED          5
ATA\TESTUS
ER_TS01.DB
F

FILE_NAME     FILE_ID
---------- ----------
TABLESPACE_NAME
------------------------------------------------------------
TESTUSER_TS

C:\ORACLED          6
ATA\TESTUS
ER_TS02.DB
F
TESTUSER_TS


已选择6行。
至少在file_name这个字段的显示来说,规整了不少。然后col tablespace_name for a10,再试试。
SQL> col tablespace_name for a10
SQL> select file_name,file_id,tablespace_name from dba_data_files;

FILE_NAME     FILE_ID TABLESPACE
---------- ---------- ----------
C:\ORACLE\          1 SYSTEM
PRODUCT\10
.2.0\ORADA
TA\BANGEL\
SYSTEM01.D
BF

C:\ORACLE\          2 UNDOTBS1
PRODUCT\10
.2.0\ORADA
TA\BANGEL\

FILE_NAME     FILE_ID TABLESPACE
---------- ---------- ----------
UNDOTBS01.
DBF

C:\ORACLE\          3 SYSAUX
PRODUCT\10
.2.0\ORADA
TA\BANGEL\
SYSAUX01.D
BF

C:\ORACLE\          4 USERS

FILE_NAME     FILE_ID TABLESPACE
---------- ---------- ----------
PRODUCT\10
.2.0\ORADA
TA\BANGEL\
USERS01.DB
F

C:\ORACLED          5 TESTUSER_T
ATA\TESTUS            S
ER_TS01.DB
F


FILE_NAME     FILE_ID TABLESPACE
---------- ---------- ----------
C:\ORACLED          6 TESTUSER_T
ATA\TESTUS            S
ER_TS02.DB
F
心情一下舒畅了血多,至少,显示出来的格式稍微舒服了一些,呵呵。
在来调整一下,会看的更舒服:col file_name for a36, col tablespace_name for a12
let's go
SQL> col file_name for a36
SQL> col tablespace_name for a16

SQL> select file_name,file_id,tablespace_name from dba_data_files;

FILE_NAME                               FILE_ID TABLESPACE_NAME
------------------------------------ ---------- ----------------
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BAN          1 SYSTEM
GEL\SYSTEM01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\BAN          2 UNDOTBS1
GEL\UNDOTBS01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\BAN          3 SYSAUX
GEL\SYSAUX01.DBF

C:\ORACLE\PRODUCT\10.2.0\ORADATA\BAN          4 USERS
GEL\USERS01.DBF

FILE_NAME                               FILE_ID TABLESPACE_NAME
------------------------------------ ---------- ----------------

C:\ORACLEDATA\TESTUSER_TS01.DBF               5 TESTUSER_TS
C:\ORACLEDATA\TESTUSER_TS02.DBF               6 TESTUSER_TS

已选择6行。
已选择6行。
这下世界安静了,舒服极了。
sqlplus应该还有更多的格式设置,再续。。。。

---EOF----

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25458798/viewspace-741726/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-03-01

  • 博文量
    32
  • 访问量
    61122