SQL*Plus 的报表功能

SQL*Plus 的报表功能

常用制作报表命令

TTITLE						//为报表的每一页设置头标题
BTITLE						//为报表的每一页设置底标题
COLUMN						//设置列的标题和格式
BREAK						//将报表中的数据分组显示并设置组间间隔
COMPUTE						//计算分组数据的汇总值
SET LINESIZE				//设置报表每行允许的最大字符数
SET PAGESIZE				//设置每页的最大行数
SET NEWPAGE					//设置页与页之间的空行数
SET HEADSEP					//设置标题分隔符

常规生成报表方法:将这些命令放到一个文本文件中,在需要时,读入缓冲区执行。

1. 报表的标题设计

格式:

TTITLE [位置说明<表头>] [OFF|ON]
BTITLE [位置说明<表尾>] [OFF|ON]
位置说明:
子句					举例				 		说明
COL	n				COL 72				让标题信息从当前左边的第n个位置开始显示
SKIP n				SKIP 2				打印n个空行,如果n未指定,则打印一个空行;n为0,不打印空行
LEFT									标题信息靠左放置
CENTER									标题信息居中放置
RIGHT									标题信息靠右放置
表头、表尾:					指定了标题的内容,一般情况下,标题可以指定为以下内容
SQL.LNO:			当前的行号
SQL.PNO:			当前的页号
SQL.replease:		当前的Oracle的版本号
SQL.USER:			当前登录的用户名称

2.设置报表尺寸

每页报表中都包含表头、列标题、查询的结果和表尾信息。

系统默认的报表尺寸如下:(可使用set命令改变)

1. 每页报表表头空一行;1 newpage
2. 每页输出内容为14行;(包括表头和表尾之间的所有内容)pagesize
3. 每行所能显示的字符数为80。linesize
  1. 例:设置每一页的表头与第一页开始位置之间的空行数为2行
set newpage 2

可以试试将newpage参数值设为0,和10 ,比较不同。

  1. 例:设置每页的输出行数为66
set pagesize 66

pagesize参数包括表头、表尾、列标题和查询出的信息,一般的打印纸,改参数值一般设置为66

  1. 例:设置每行输出最大字符数为120
set linesize 120
  1. 例:恢复系统默认设置
set pagesize 14
set newpage 1
set linesize 80
3. 设置列COLumn

此参数可以改变列标题及各列数据的显示格式,其语法:

column [[column][alias]] [option]
option选项的值说明
CLEAR清除指定列所设置的显示属性,恢复默认显示属性
FORMAT格式化指定的列
HEADING定义列标题
JUSTIFY调整列标题的对齐方式。默认情况下,数值类型的列为右对齐,其它类型的列为左对齐
NULL指定一个字符串,如果列值为NULL,则由该字符串代替
PRINT/NOPRINT显示或不显示列标题,默认为显示
ON OFF控制定义的显示属性的状态,OFF为所有显示属性不起作用,默认为ON
WRAPPED当字符串的长度超过显示宽度时,将字符串的超出部分折叠到下一行显示
WORD_WRAPPED表示从一个完成的字符出折叠
TRUNCATED表示阶段字符串尾部
  1. 例:使用heading把scott.emp表中的empno、ename、sal三个列名转换为中文形式
col empno heading 雇员编号
col ename heading 雇员姓名
col sal heading 雇员工资
select empno,ename,sal from scott.emp;
  1. 例:使用format选项格式化scott.emp表中的员工工资为$9999,999.00格式
col sal format $9999,999.00
select empno,ename,sal from scott.emp;

例:把scott.emp表中ename列在报表中改成“职工姓名”

COLUMN ename HEADING '职工姓名' A10
  1. 例:编写脚本demo.sql
set verify off
set pagesize 30
set linesize 120
clear columns
column empno heading '职工编号' format 9999
Column ename heading '职工姓名' format A10
column hiredate heading '受雇日期' justify center
column sal heading '职工工资' format $99,999.99
select empno, ename, hiredate, sal from scott.emp;
clear columns
  1. 例:添加表头表尾
ttitle left '日期:' _DATE center '员工基本信息表' right '页:' format 999  SQL.PNO  '报表人:' SQL.USER
btitle center '谢谢使用报表!'
set echo off
set verify off
set pagesize 30
set linesize 120
clear columns
column empno heading '职工编号' format 9999
Column ename heading '职工姓名' format A10
column hiredate heading '受雇日期' justify center
column sal heading '职工工资' format $99,999.99
select empno, ename, hiredate, sal from scott.emp;
clear columns
ttitle off
btitle off

column命令用法:

1. 显示某一列的显示属性:
column 列名
2. 显示所有列的显示属性:
column
3. 将某列的显示属性重置成默认形式:
column 列名 clear
4. 将所有列的显示属性重置成默认形式:
clear columns
4.计算小计

语法格式:

BREAK [ON 列名] SKIP n
COMPUTE function OF 列名1 列名2 ........ ON 列名
  1. 例:列出30号部门的雇员及他们工资的平均值和总和。
break on deptno
compute avg sum of sal on deptno
select deptno ,ename ,sal
from scott.emp
where deptno = 30
order by deptno , sal ;

break命令操作:

1. 若想显示break命令的当前设置,可输入:
break
2. 清除break命令的设置:
clear breaks

compute命令操作:

1. 查看已经定义的compute命令:
compute
2. 清除compute命令的设置:
clear computes

compute命令中使用的函数:

SUM					//计算总和
MIN					//计算最小值
MAX					//计算最大值
AVG					//计算平均值
STD					//计算标准偏差
VAR					//计算协方差
COUNT				//计算非空值的总个数
NUMBER				//计算行数
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值