sqlplus格式设置

一、语法

1.当前连接生效
设置sqlplus模式显示总行数:

SQL> show pagesize; --查看目前的pagesize

SQL> set pagesize 100; --设置pagesize为100

设置sqlplus模式显示行宽度:

SQL> show linesize; --查看当前的linesize宽度

SQL> set linesize 100; --设置linesize宽度

2.永久生效
修改安装目录glogin.sql文件:

# vi $ORACLE_BASE/product/11.2.0/db_1/sqlplus/admin/glogin.sql

配置如下:

set pagesize 100;

set linesize 100;

二、实例讲解

我们有时在做查询时,输出的的结果可读性较差,如下例:

SQL> select username,user_id,account_status from dba_users where username like '%RUI%';

USERNAME
--------------------------------------------------------------------------------
   USER_ID ACCOUNT_STATUS
---------- --------------------------------
RUI
       91 OPEN

此时可通过修改sqlplus格式来增强可读性:

SQL> set linesize 100
SQL> col username format A20
SQL> col  USER_ID format A20
SQL> col ACCOUNT_STATUS format A20
SQL> select username,user_id,account_status from dba_users where username like '%RUI%';

USERNAME                USER_ID ACCOUNT_STATUS
-------------------- ---------- --------------------
RUI                  ########## OPEN

这里发现有一个问题,column格式化后字段值显示为##########,这是由于这个字段本身是number数据类型,而之前做查询时格式化的同名字段是varchar2,所以,做了列格式化后必然要出错。

处理方法是如下:

SQL> col  USER_ID format 99
SQL>  select username,user_id,account_status from dba_users where username like '%RUI%';

USERNAME     USER_ID  ACCOUNT_STATUS
-------------------- ------------- --------------------
RUI                      91           OPEN

补充:
如果number字段的值位数比较多(如:1442840576,有10位),则需十个9,即
SQL> col USER_ID format 9999999999