ITPub博客

首页 > 数据库 > Oracle > SQL*PLUS报表功能

SQL*PLUS报表功能

原创 Oracle 作者:flhs 时间:2006-01-25 10:28:17 0 删除 编辑
SQL*PLUS的一些基本格式命令
column deptno heading department

column ename heading name

column sal heading salary

column sal format $99,999.00

ttitle sample report for|hitech corp

btitle strictly confidential

break on deptno

compute sum of sal on deptno

run
[@more@]表头和表尾
ttitle sample report for|hitech corp
btitle right strictly confidential

“|”表示换行,结尾不必加分号
选项有三种:left right center

使用TTITLE,系统将自动地在每页的顶部显示日期和页号。
TTITLET和BTITLE命令有效,直至重新设置表头或表尾,或退出SQL*PLUS。

下面命令使标题语句失效
TTITLE OFF
BTITLE OFF

列名
column命令定义用于显示列名
若名字为一个单词,不必加引号
column ename heading employee

column ename heading 'employee|name'
(|为换行)

取消栏定义
column ename clear

列的格式
column ename format A15

column sal format $9,999.99

column comm like sal

like子句,使得某一列的格式参照另一列格式,它拷贝列名及其格式

控制记录显示分组顺序
break on deptno
(不显示重复值)

select deptno,ename
from emp
order by deptno;
(ORDER BY子句用于控制BREAK)

显示为
10 clark
niller
20 smith
scott
30 allen
blake

每次只有一个BREAK命令起作用,但一次可以在多个列上使用BREAK命令
break on 列名1 on 列名2

记录分组
break on deptno skip 2
select deptno,ename
from emp
order by deptno;

每个deptno之间空两行
clear break(取消BREAK命令)
break on page(每次从一新页开始)
break on report(每次从一新报表开始)
break on page on report(联合使用)

分组计算
break on deptno skip 2
compute sum of sal on deptno
计算每个部门的工资总和
skip子句使部门之间的信息分隔开

其他计算命令
compute avg of sal on deptno(平均值)
count 非空值的总数
MAX 最大值
MIN 最小值
STD 标准偏差
VAR 协方差
NUMBER 行数

使compute命令失效
一旦定义了COMPUTE,则一直有效,直到
关闭COMPUTE(clear compute)

SQL/PLUS环境命令
show 选项
(显示当前参数设置情况)

show all(显示全部参数)

设置参数
set 选项 值或开关

set autocommit on

SET命令包括
set autocommit {off|on|immediate}
(自动提交,OFF缺省)

set echo {off|on}
(命令文件执行,是否在终端上显示命令本身,OFF缺省)

set feedback {off|on}
(ON:查询结束时,给出结果,记录数的信息,缺省;
OFF:无查询结果,记录数的信息)

set heading {off|on}
(ON:列的头标在报表上显示,缺省;OFF:不在报表上显示)

set linesize {n}
一行显示的最大字符数,缺省为80

set pagesize {n}
每页的行数,缺省是14

set pause {off|on|text}
(ON:当报表超过一页时,每显示一屏就暂停显示,等待用户打回车键,再接着显示;
OFF:页与页不停顿,缺省;text:页与页停顿,并向用户提示信息)

SET BUFFER buffer
设置当头的命令缓冲区,通常情况下,SQL命令缓冲区已为当前缓冲区。
由于SQL命令缓冲区只能存放一条SQL命令,
所以可用其它缓冲区来存放SQL命令和SQL*PLUS命令。

经常用到的设置可放在login.sql文件中。

SET NULL
set null 'no data'

select ename,comm
from emp
where deptno=30;
把部门30中无佣金雇员的佣金显示为“NO DATA”。

set null是SQL*PLUS命令,用它来标识空值(NULL),可以设置为任意字符串。

存盘命令SAVE
save 文件名

input
1 select empno,ename,job
2 from emp
3 where job='analyst'

save research

目录中会增加一个research.sql文件。

编辑命令EDIT
edit

EDIT编辑当前缓冲区中的内容。

编辑一个文件
edit research

调入命令GET
get research
把磁盘上的文件内容调入缓冲区,并显示在屏幕上,文件名尾不必加.sql。

START命令
运行指定的文件
start research

输出命令SPOOL
spool tryfile
不仅可以使查询结果在屏幕上显示,还可以使结果存入文件

停止向文件输出
spool off

把查询结果在打印机上输出,先把它们存入一个文件中,
然后不必使用SPOOL OFF,而用:
spool out
SPOOL OUT关闭该文件并在系统缺省的打印机上输出

制作报表举例
edit tryfile

set echo off
set autocommit on
set pagesize 25
insert into emp (empno,ename,hiredate)
values(9999,'geiger',sysdate);
insert into emp (empno,ename,deptno)
values(3333,'samson',20);
spool new_emp
select * from emp
where deptno=20
or deptno is null
/
spool off
set autocommit off

用start命令执行这个文件

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

请登录后发表评论 登录
全部评论
  • 博文量
    54
  • 访问量
    220446