29 Oracle数据库SQL开发之 SQLPlus使用——创建简单报表

本文介绍了如何在SQLPlus中创建简单报表,包括使用临时变量、已定义变量、向脚本传值、添加页眉页脚和计算小计。此外,还展示了如何使用BREAK和COMPUTE命令添加小计,以及SQLPlus的其他功能。
摘要由CSDN通过智能技术生成

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

29.Oracle数据库SQL开发之 SQLPlus使用——创建简单报表

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/49722905

可以使用变量来创建用户可以运行的脚本。

SQL*PLUS并不是专门设计报表的工具。如果需要生成复杂的报表,应该使用诸如Oracle Reports之类的软件。

1.  脚本中使用临时变量

首先执行如下:

SET ECHO OFF

SET VERIFY OFF

 

SELECT product_id, name, price

FROM products

WHERE product_id = &v_product_id;

其中SET VERIFY OFF命令禁止验证消息。

运行结果如下:

store@PDB1> @report1.sql

Enter value for v_product_id: 2

 

PRODUCT_ID NAME                                PRICE

---------- ----------------------------------------

          2 Chemistry                                 30

2.  脚本中使用已定义变量

执行如下脚本:

SET ECHO OFF

SET VERIFY OFF

 

ACCEPT v_product_id NUMBER FORMAT 99 PROMPT 'Productid: '

 

SELECT product_id, name, price

FROM products

WHERE product_id = &v_product_id;

 

-- clean up

UNDEFINE v_product_id

执行如下:

store@PDB1> @report2.sql

Product id: 4

 

PRODUCT_ID NAME                                PRICE

---------- ----------------------------------------

          4 Tank War                              13.95

3.  向脚本中的变量传递值

执行如下脚本:

SET ECHO OFF

SET VERIFY OFF

 

SELECT product_id, name, price

FROM products

WHERE product_id = &1;

这个类似SHELL脚本,的$1变量,表示输入的第一个变量。

执行结果如下:

store@PDB1> @report3.sql 3

 

PRODUCT_ID NAME                                PRICE

---------- ----------------------------------------

          3 Supernova                            25.99

4.  添加页眉和页脚

TTILE和BTITLE可以向报表中添加页眉和页脚。

执行如下,脚本:

TTITLE LEFT 'Run date: ' _DATE CENTER 'Run by the 'SQL.USER ' user' RIGHT 'Page: ' FORMAT 999 SQL.PNO SKIP 2

 

BTITLE CENTER 'Thanks for running the report' RIGHT'Page: ' FORMAT 999 SQL.PNO

 

SET ECHO OFF

SET VERIFY OFF

SET PAGESIZE 30

SET LINESIZE 70

CLEAR COLUMNS

COLUMN product_id HEADING ID FORMAT 99

COLUMN name HEADING 'Product Name' FORMAT A20 WORD_WRAPPED

COLUMN description HEADING Description FORMAT A30WORD_WRAPPED

COLUMN price HEADING Price FORMAT $99.99

 

SELECT product_id, name, description, price

FROM products;

 

CLEAR COLUMNS

TTITLE OFF

BTITLE OFF

执行结果如下:

store@PDB1> @report5.sql

 

Run date: 07-NOV-15       Run by the STORE user               Page:   1

 

 IDProduct Name   Description                         Price

--- -------------------------------------------------- -------

  1Modern Science         A description ofmodern         $19.95

                             science

 

  2Chemistry          Introduction toChemistry     $30.00

  3Supernova                   A starexplodes               $25.99

  4Tank War            Action movie about afuture $13.95

                             war

 

  5 ZFiles                  Series onmysterious               $49.99

                             activities

 

  62412: The Return      Aliens return                    $14.95

  7Space Force 9    Adventures of heroes             $13.49

  8From Another Planet  Alien from anotherplanet   $12.99

                             lands on Earth

 

  9Classical Music The best classical music         $10.99

 10Pop 3                   The best popularmusic          $15.99

 11Creative Yell      Debut album                    $14.99

 12My Front Line    Their greatest hits                   $13.49

 

 

 

 

                        Thanks for running the report           Page:    1

 

12 rows selected.

5.  计算小计

BREAKON和COMPUTE命令可以结合使用,用来为列添加小计。

BREAK ON子句可以让SQL*PLUS根据列值范围分隔输出结果,COMPUTE子句可以让SQL*Plus计算一列的值。

BREAK ON product_type_id

COMPUTE SUM OF price ON product_type_id

 

SET ECHO OFF

SET VERIFY OFF

SET PAGESIZE 50

SET LINESIZE 70

 

CLEAR COLUMNS

COLUMN price HEADING Price FORMAT $999.99

 

SELECT product_type_id, name, price

FROM products

ORDER BY product_type_id;

 

CLEAR COLUMNS

执行结果如下:

store@PDB1> @report6.sql

 

PRODUCT_TYPE_ID NAME                                   Price

--------------------------------------------- --------

               1 Modern Science                           $19.95

                   Chemistry                           $30.00

***************                                    --------

sum                                                $49.95

               2 Z Files                           $49.99

                   TankWar                    $13.95

                   Supernova                           $25.99<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值