SQL *PLUS Repost的开发方法

SQL *PLUS  Repost的开发方法

使用SQL*PLUS 可直接在IE Browser中生成规整的字符型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'

COLUMN LAST_NAME HEADING 'LAST|NAME'

 

3.       改变标题下划线格式(Format of underline

SET UNDERLINE

例:

SET UNDERLINE =

/

 

4.       改变列的显示格式

COLUMN  <字段名或字段别名>  FORMAT <格式描述>

 

数值型格式描述与to_number函数基本一致,如:

$99.990

其它格式数据均用A(n)来设置宽度,如:

A10

如果有字符超出10,则会自动折行. 除非你做如下设置 :

SET  WRAP OFF

则多出的字符会被截掉.

 

5.       复制字段格式设置

COLUMN <目标字段名> LIKE <来源字段名> HEADING <标题名>

:

COLUMN COMMISSION_PCT LIKE SALARY HEADING BONUS 

 

6.       不显示某一列

COLUMN <目标字段名> NOPRINT

 

7.       排序后,重复字段不显示(即分组)

BREAK ON <字段名>

:

BREAK ON DEPARTMENT_ID;

       SELECT DEPARTMENT_ID, LAST_NAME, SALARY

       FROM EMP_DETAILS_VIEW

       WHERE SALARY > 12000

ORDER BY DEPARTMENT_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>

N代表空行行数

BREAK ON <字段名> SKIP  PAGE

PAGE 代表分页

 

9.       每行均用空行分隔

BREAK ON ROW SKIP <N>

N代表空行行数

BREAK ON ROW SKIP  PAGE

PAGE 代表分页

 

10.   复合式BREAK ON

BREAK ON DEPARTMENT_ID SKIP PAGE ON JOB_ID SKIP 1

首先基于department_id进行分页,然后基于job_id进行空行分隔

 

11.   分组汇总-基于字段

BREAK ON <字段名>

COMPUTE <FUNCTION>  LABEL <LABEL NAME>  OF <COLUMN LIST> ON  <BREAK COLUMN>

 

                Compute Functions

       SUM:        Sum of the values in the column.

      MINIMUM:    Minimum value in the column.

      MAXIMUM:    Maximum value in the column.

      AVG:        Average of the values in the column.

      STD:        Standard deviation of the values in the column.

      VARIANCE:   Variance of the values in the column.

      COUNT:      Number of non-null values in the column.

NUMBER:     Number of rows in the column.

 

 

12.   分组汇总-基于页面

BREAK ON  PAGE

COMPUTE <FUNCTION>  LABEL <LABEL NAME>  OF <COLUMN LIST> ON  PAGE

 

 

13.   分组汇总-基于报表

BREAK ON  REPORT

COMPUTE <FUNCTION>  LABEL <LABEL NAME>  OF <COLUMN LIST> ON  REPORT

 

14.   定义页面页眉及页脚

页眉:

TTITLE <POSITION>  <DESCRIPTION>

页脚:

BTITLE <POSITION>  <DESCRIPTION>

其中的< POSITION > 有如下几种:

CENTER: 中间

LEFT: 左边

RIGHT: 右边

:

       TTITLE CENTER "ACME SALES DEPARTMENT PERSONNEL REPORT"

BTITLE CENTER "COMPANY CONFIDENTIAL"

 

同时设置多个位置,可通过如下方法实现:

保持在同一行: 加“-”实现

:

TTITLE LEFT ‘PAGE:’ –

             RIGHT ‘DATE:’

如果需要换行,可加SKIP <N> 实现

例:

TTITLE CENTER 'A C M E W I D G E T' SKIP 1 -

             CENTER ==================== SKIP 1

                LEFT 'PERSONNEL REPORT' -

                RIGHT 'SALES DEPARTMENT' SKIP 2

 

在标题中加空格的方法:

COL <N>

:

TTITLE LEFT 'ACME WIDGET' SKIP 1 -

COL 6 'SALES DEPARTMENT PERSONNEL REPORT' SKIP 2

 

15.   定义报表页眉及页脚

REPHEADER <POSITION>  <DESCRIPTION>

REPFOOTER <POSITION>  <DESCRIPTION>

其它方法同页面页眉页脚.

 

16.   在页眉页脚中加入自定义变量

可先定义变量

COLUMN <字段名> NEW_VALUE <变量名>

然后通过SQL 语句为变量赋值

:

COLUMN sys_time         FORMAT  a8      new_value       x_time  print

SELECT

                to_char(sysdate, 'hh:mi:ss') "sys_time"

  FROM

                dual;

 

17.   在页眉页脚中加入系统变量

SQL.PNO: 页码  TTITLE LEFT 'ACME WIDGET' RIGHT 'PAGE:' SQL.PNO SKIP 2

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值