如何使用SQL PLUS快速开发ORACLE相关报表

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:995

使用SQL*PLUS 可生成规整的字符型Report. 实现方法简单,布署容易。方法:1. 利用文本编辑器编写SQL*PLUS 脚本,保存成 .sql 文件。2. 上传sql 文件至应用的sql 目录。3. 注册Method 为SQL*PLUS 的Concurrent,并调用此 sql 文件.
SQL*PLUS Report 的格式化方法:1. 改变列标题COLUMN <字段名或字段别名> HEADING <标题名>例: COLUMN LAST_NAME HEADING'LAST NAME' COLUMN SALARY HEADING'MONTHLY SALARY' COLUMN COMMISSION_PCT HEADING'COMMISSION'
2. 列标题自动折行COLUMN <字段名或字段别名> HEADING <标题名1-1|标题名1-2>例: COLUMN SALARY HEADING'MONTHLY|SALARY' COLUMNLAST_NAME HEADING 'LAST|NAME'

3. 改变标题下划线格式(Format of underline)SETUNDERLINE例:SETUNDERLINE =/
4. 改变列的显示格式COLUMN <字段名或字段别名> FORMAT<格式描述> 数值型格式描述与to_number函数基本一致,如:$99.990其它格式数据均用A(n)来设置宽度,如:A10如果有字符超出10,则会自动折行. 除非你做如下设置 :SET WRAP OFF则多出的字符会被截掉.
5. 复制字段格式设置COLUMN <目标字段名> LIKE <来源字段名> HEADING <标题名>例:COLUMNCOMMISSION_PCT LIKE SALARY HEADING BONUS
6. 不显示某一列COLUMN <目标字段名> NOPRINT
7. 排序后,重复字段不显示(即分组)BREAK ON <字段名>例:BREAK ONDEPARTMENT_ID; SELECT DEPARTMENT_ID, LAST_NAME,SALARY FROM EMP_DETAILS_VIEW WHERE SALARY > 12000ORDER BYDEPARTMENT_ID; DEPARTMENT_ID LAST_NAME SALARY -------------------------------------- ---------- 20 Hartstein 13000 80 Russell 14000 Partners 13500 90 King 24000 Kochhar 17000 De Haan 17000
8. 排序后,重复字段不显示,并用空行分隔(分组间间距加大)BREAK ON <字段名> SKIP N代表空行行数BREAK ON <字段名> SKIP PAGEPAGE 代表分页
9. 每行均用空行分隔BREAK ONROW SKIP N代表空行行数BREAK ON ROWSKIP PAGEPAGE 代表分页
10. 复合式BREAK ONBREAK ONDEPARTMENT_ID SKIP PAGE ON JOB_ID SKIP 1首先基于department_id进行分页,然后基于job_id进行空行分隔
11. 分组汇总-基于字段BREAK ON <字段名>COMPUTE LABEL

16. 在页眉页脚中加入自定义变量可先定义变量COLUMN <字段名> NEW_VALUE <变量名>然后通过SQL 语句为变量赋值例:COLUMNsys_time FORMAT a8 new_value x_time printSELECT to_char(sysdate, 'hh:mi:ss')"sys_time" FROM dual;

17. 在页眉页脚中加入系统变量SQL.PNO: 页码 TTITLE LEFT 'ACME WIDGET' RIGHT'PAGE:' SQL.PNO SKIP 2

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】