oracle--sqlplus格式化输出

01,日期格式化输出

SQL> alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:mi:ss';
SQL> select sysdate from dual;

SYSDATE
-------------------
2019-06-21 14:26:08
 SQL> alter session set nls_date_format ='yyyy"年"mm"月"dd"日生"';
 
会话已更改。
SQL> col HIREDATE heading 生日
SQL> col sal heading 数字
SQL> col sal ename 姓名
SQL> select ename,sal,hiredate from emp;
 
姓名             数字             生日
---------- ---------- -----------------
SMITH             800 1980年12月17日生
ALLEN            1600 1981年02月20日生
WARD             1250 1981年02月22日生
JONES            2975 1981年04月02日生
MARTIN           1250 1981年09月28日生
BLAKE            2850 1981年05月01日生
CLARK            2450 1981年06月09日生
SCOTT            3000 1987年04月19日生
KING             5000 1981年11月17日生
TURNER           1500 1981年09月08日生
ADAMS            1100 1987年05月23日生
JAMES             950 1981年12月03日生
FORD             3000 1981年12月03日生
MILLER           1300 1982年01月23日生
 

02,生成报告

SPOOL命令
 
SPOOL   filename      将缓冲区的内容写到文件中
SPOOL   off           终止写命令

03,加标题

  
ttitle   [center|left|right]string    顶标题
btitle   [center|left|right]string    底标题
ttitle   center   'XX公司人员情况表'
btitle   left     '制表人:赵元杰'   right    '日期:1998.11月'
Clear    ttitle

04,

breakcompute
 
clear    breaks,clear    computes
break   on   column     在该列上中断
break   on   row        在每一行上中断
break   on    Page
break   on    report
skip     n               跳过n行
skip     page            跳过未用完的页
compute       avg
compute      count
compute       max
compute       min
compute       std
compute       sum
compute       var
compute       num     计算所有行
compute       sum   of   sal   on   deptno

05,col

 COL[UMN] [{ column | expr } [ option_1 ... option_n ] ]
 column:列名
expr:有效的 SQL 表达式
option_1... option_n:可以是下列之一:
ALI[AS] alias
CLE[AR]
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format
HEA[DING] text
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
LIKE { expr|alias}
NEWL[INE]
NEW_V[ALUE] variable
NOPRI[NT]|PRI[NT]
NUL[L] text
OLD_V[ALUE] variable
ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
1). 改变缺省的列标题
COLUMN column_name HEADING column_heading 
For example:
Sql>select * from dept;
DEPTNO DNAME LOC
---------- ---------------------------- ---------
10 ACCOUNTING NEW YORK
sql>col LOC heading location
sql>select * from dept;
DEPTNO DNAME location
--------- ---------------------------- -----------
10 ACCOUNTING NEW YORK

2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:
Sql>select * from emp
Department name Salary
---------- ---------- ----------
10 aaa 11
SQL> COLUMN ENAME HEADING ’Employee|Name’
Sql>select * from emp
Employee
Department name Salary
---------- ---------- ----------
10 aaa 11
note: the col heading turn into two lines from one line.

3). 改变列的显示长度:
FOR[MAT] format
Sql>select empno,ename,job from emp;
EMPNO ENAME JOB
---------- ---------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
Sql> col ename format a40
EMPNO ENAME JOB
---------- ---------------------------------------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN

4). 设置列标题的对齐方式
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
SQL> col ename justify center
SQL> /
EMPNO ENAME JOB
---------- ---------------------------------------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边
5). 不让一个列显示在屏幕上
NOPRI[NT]|PRI[NT]
SQL> col job noprint
SQL> /
EMPNO ENAME
---------- ----------------------------------------
7369 SMITH
7499 ALLEN
7521 WARD

6). 格式化NUMBER类型列的显示:
SQL> COLUMN SAL FORMAT $99,990
SQL> /
Employee
Department Name Salary Commission
---------- ---------- --------- ----------
30 ALLEN $1,600 300

7). 显示列值时,如果列值为NULL值,用text值代替NULL值
COMM NUL[L] text
SQL>COL COMM NUL[L] text

8). 设置一个列的回绕方式
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
COL1
--------------------
HOW ARE YOU?

SQL>COL COL1 FORMAT A5
SQL>COL COL1 WRAPPED
COL1
-----
HOW A
RE YO
U?
SQL> COL COL1 WORD_WRAPPED
COL1
-----
HOW
ARE
YOU?
SQL> COL COL1 WORD_WRAPPED
COL1
-----
HOW A
www.2cto.com
9). 显示列的当前的显示属性值
SQL> COLUMN column_name
10). 将所有列的显示属性设为缺省值
SQL> CLEAR COLUMNS
原文地址:https://www.cnblogs.com/kingle-study/p/11064387.html