SQL> show echo
echo OFF
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> save "D:\Sql\echo_sample"
已创建 file D:\Sql\echo_sample.sql
SQL> @D:\Sql\echo_sample.sql
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> set echo on
SQL> show echo
echo ON
SQL> @D:\sql\echo_sample.sql
SQL> select * from dept
2 /
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> show all
appinfo 为 OFF 并且已设置为 "SQL*Plus"
arraysize 15
autocommit OFF
autoprint OFF
autorecovery OFF
autotrace OFF
blockterminator "." (hex 2e)
btitle OFF 为下一条 SELECT 语句的前几个字符
cmdsep OFF
colsep " "
compatibility version NATIVE
concat "." (hex 2e)
copycommit 0
COPYTYPECHECK 为 ON
define "&" (hex 26)
describe DEPTH 1 LINENUM OFF INDENT ON
echo OFF
editfile "afiedt.buf"
embedded OFF
escape OFF
用于 6 或更多行的 FEEDBACK ON
flagger OFF
flush ON
heading ON
headsep "|" (hex 7c)
instance "local"
linesize 80
lno 14
loboffset 1
logsource ""
long 80
longchunksize 80
markup HTML OFF HEAD "<style type='text/css'> body {font:10pt Arial,Helvetica,sa
ns-serif; color:black; background:White;} p {font:10pt Arial,Helvetica,sans-seri
f; color:black; background:White;} table,tr,td {font:10pt Arial,Helvetica,sans-s
erif; color:Black; background:#f7f7e7; padding:0px 0px 0px 0px; margin:0px 0px 0
px 0px;} th {font:bold 10pt Arial,Helvetica,sans-serif; color:#336699; backgroun
d:#cccc99; padding:0px 0px 0px 0px;} h1 {font:16pt Arial,Helvetica,Geneva,sans-s
erif; color:#336699; background-color:White; border-bottom:1px solid #cccc99; ma
rgin-top:0pt; margin-bottom:0pt; padding:0px 0px 0px 0px;} h2 {font:bold 10pt Ar
ial,Helvetica,Geneva,sans-serif; color:#336699; background-color:White; margin-t
op:4pt; margin-bottom:0pt;} a {font:9pt Arial,Helvetica,sans-serif; color:#66330
0; background:#ffffff; margin-top:0pt; margin-bottom:0pt; vertical-align:top;}</
style><title>SQL*Plus Report</title>" BODY "" TABLE "border='1' width='90%' alig
n='center' summary='Script output'" SPOOL OFF ENTMAP ON PREFORMAT OFF
newpage 1
null ""
numformat ""
numwidth 10
pagesize 14
PAUSE 为 OFF
pno 0
recsep WRAP
recsepchar " " (hex 20)
release 1002000100
repfooter OFF 为 NULL
repheader OFF 为 NULL
serveroutput OFF
shiftinout INVISIBLE
showmode OFF
spool OFF
sqlblanklines OFF
sqlcase MIXED
sqlcode 0
sqlcontinue "> "
sqlnumber ON
sqlpluscompatibility 10.2.0
sqlprefix "#" (hex 23)
sqlprompt "SQL> "
sqlterminator ";" (hex 3b)
suffix "sql"
tab ON
termout ON
timing OFF
trimout ON
trimspool OFF
ttitle OFF 为下一条 SELECT 语句的前几个字符
underline "-" (hex 2d)
USER 为 "SYS"
verify ON
wrap : 将换至下一行
SQL>
SQL> show feedback
用于 6 或更多行的 FEEDBACK ON
SQL> select *
2 from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> select ename, sal
2 from emp
3 where sal > 1500;
ENAME SAL
---------- ----------
ALLEN 1600
JONES 2975
BLAKE 2850
CLARK 2450
KING 5000
FORD 3000
已选择6行。
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> col deptno for 999999
SQL> select * from dept;
DEPTNO DNAME LOC
------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> col loc for a9
SQL> select * from dept;
DEPTNO DNAME LOC
------- -------------- ---------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> col loc heading 'Location' for a9
SQL> select * from dept;
DEPTNO DNAME Location
------- -------------- ---------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> col loc heading '地 点' for a9
SQL> select * from dept;
DEPTNO DNAME 地 点
------- -------------- ---------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> col loc
COLUMN loc ON
HEADING '地 点'
FORMAT a9
SQL> col deptno
COLUMN deptno ON
FORMAT 999999
SQL>
SQL> col loc clear
SQL> select * from dept;
DEPTNO DNAME LOC
------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> select ename, job, sal
2 from emp
3 where sal >= 1500;
ENAME JOB SAL
---------- --------- ----------
ALLEN SALESMAN 1600
JONES MANAGER 2975
BLAKE MANAGER 2850
CLARK MANAGER 2450
KING PRESIDENT 5000
TURNER SALESMAN 1500
FORD ANALYST 3000
已选择7行。
SQL> col sal for $99,999.99
SQL> select ename, job, sal
2 from emp
3 where sal >= 1500;
ENAME JOB SAL
---------- --------- -----------
ALLEN SALESMAN $1,600.00
JONES MANAGER $2,975.00
BLAKE MANAGER $2,850.00
CLARK MANAGER $2,450.00
KING PRESIDENT $5,000.00
TURNER SALESMAN $1,500.00
FORD ANALYST $3,000.00
已选择7行。
SQL> col sal for $000,999.99
SQL> select ename, job, sal
2 from emp
3 where sal >= 1500;
ENAME JOB SAL
---------- --------- ------------
ALLEN SALESMAN $001,600.00
JONES MANAGER $002,975.00
BLAKE MANAGER $002,850.00
CLARK MANAGER $002,450.00
KING PRESIDENT $005,000.00
TURNER SALESMAN $001,500.00
FORD ANALYST $003,000.00
已选择7行。
SQL> col sal for L99,999.99
SQL> select ename, job, sal
2 from emp
3 where sal >= 1500;
ENAME JOB SAL
---------- --------- --------------------
ALLEN SALESMAN ¥1,600.00
JONES MANAGER ¥2,975.00
BLAKE MANAGER ¥2,850.00
CLARK MANAGER ¥2,450.00
KING PRESIDENT ¥5,000.00
TURNER SALESMAN ¥1,500.00
FORD ANALYST ¥3,000.00
已选择7行。
9.6
REM ***This is a emplyees' salary report for senior management team ***
REM ***Strictly Confidential ***
set pagesize 25
set linesize 30
set feedback off
ttitle '==========Sun_Moon IT Company====|===== Employee salary report ========'
btitle'Strictly confidential !!!!'
break on deptno skip 2
column deptno heading 'Department|number'JUSTIFY CENTER FORMAT 99999999
column job heading 'Job|Category' format A15
column avg(sal) heading 'Average|salary'format L99,999,00
column count(sal)heading'Employee|Numer'JUSTIFY CENTER FORMAT 99999999
column sum(sal) heading 'Sumnary|salary'format L99,999,00
select deptno,job avg(sal),count(sal),sum(sal)
from emp
group by deptno,job
/
set feedback on
@d:\oracle\ming\report
9.6 SQL*PLUS的其他格式化命令
除了COLUMN命令外,SQL*PLUS还提供了一些其他的常用格式化命令,它们包括TITLE(Top Title),BTITLE(Bottom Title) 和BREAK,其命令格式如下:
TTI[TLE][正文|off|on] :设置每页顶部的头标。
BTI[TLE][ 正文|off|on]:设置每页项部的脚标。
BREAK ON 列名[|别名][SKIP n]:去掉重复的行,并在断开点跳过n行。
CLEAR BREAK:清除所有的BREAK设置。
为了使BREAK有效地工作,需要在设置断点的列上使用ORDER BY 子句。
下面我们通一个比较完整的例子来更详细地介绍SQL*PLUS的一些常用的格式化命令:
REM ***This is a emplyees' salary report for senior management team ***
REM ***Strictly Confidential ***
set pagesize 25
set linesize 30
set feedback off
ttitle '==========Sun_Moon IT Company====|===== Employee salary report ========'
btitle'Strictly confidential !!!!'
break on deptno skip 2
column deptno heading 'Department|number'JUSTIFY CENTER FORMAT 99999999
column job heading 'Job|Category' format A15
column avg(sal) heading 'Average|salary'format L99,999,00
column count(sal)heading'Employee|Numer'JUSTIFY CENTER FORMAT 99999999
column sum(sal) heading 'Sumnary|salary'format L99,999,00
select deptno,job avg(sal),count(sal),sum(sal)
from emp
group by deptno,job
/
set feedback on
现在我们来逐一解释上例中的命令。
(1) 以REM开始的语句为注释,即在运行时ORACLE 并不执行该语句。注释语句只是一些帮助理解脚本文件内家的解释,可以在注释语句中放入任何您认为有用的句子。
(2) SET PAGESIZE 25:设置报告的显示长度为25行。
(3) SET LINESIZE 80:设置每行的显示宽度为80字符。
(4) SET FEEDBACK OFF:关闭反馈。
(5) TTITLE…:设置报告的头标为:==========Sun_Moon IT Company====|===== Employee salary report ========
(6) BTITLE….设置报告的脚标为:Strictly Confidential!!!
(7) BREAK ON deptno SKIP 2:设置当deptno变化时换行并跳过两行。
(8) column deptno…..: 设置deptno题标为'Department中间对齐并显示7位数字
(9) column job….:设置job的题标为Job并标显示15个字符。
(10) column avg(sal):设置avg(sal) 的题标为Average并标显示7位数字,小数点后两位,千位符前两位,并在数据字前显示人民币符号。
(11) column count(sal):设置count(sal) 的题标为'Employee并标显示3位数字, 中间对齐。
(12) column sum(sal):设置sum(sal) 的题标为Sumnary并标显示7位数字,小数点后两位,千位符前两位,并在数据字前显示人民币符号。
(13) set feedback on:打开反馈。
我们上例的命令report.sql的脚本文件中,该文件存在:d:\oracle\ming的目录下。请注意:必须在存文件之前用操作系统命令创建些目录。可以使用任何您喜欢的目录或文件名,之后我们装入并运该脚本。
@d:\oracle\ming\report
结果:
以下是所显示报告的推荐步骤:
1.建立所需的SQL语句。
2.测试这些SQL语句。
3.把经过测试并没有错误的SQL语句存在一个脚本文件中。
4.在SQL语句之前加上所需的SQL*PLUS的格式化命令。
5.在SQL语句之后加上结束符“/”
6.之后恢复SQL*PLUS环境变量的默认设置。
7.存储该脚本文件。
8.运行该脚要文件。
9.7 数据字典和数据字典视图
参见另外一本书