[转贴]用Oracle的SQL*Plus工具创建HTML页面

Oracle 的 SQL*Plus 工具有一些比较有趣的选项,合理的使用,能够给我们意想不到的后果。其中有一个 ”-M” 选

项能够创建用来创建 HTML 报表,在实际应用中很有用处。我们先来看看 SQL*Plus的一些选项:

 

-----------------------Oracle8i------Begin--------------------------------------

C:/>SQLPLUS -

 

用法 : SQLPLUS [ [

  • ] [ ] [ ] ]
  • 其中

  • ::= - | -? | [ [-M ] [-R ] [-S] ]
  • < 登录 > ::= < 用户名 >[/< 口令 >][@ ] | / | /NOLOG

    < 启动 > : : = @< 文件名 >[. ] [< 参数 > ...]

    "-" 显示使用语法

    "-?" 显示 SQL*Plus 版本标帜

    "-M " 使用 HTML 标志选项

    "-R " uses restricted mode

    "-S" uses silent mode

     

    ”-M” 选项指定在输出的时侯使用 HTML 标记来输出数据,用以代替普通的文本。

    -----------------------Oracle8i-------------End---------------------------------

     

    -----------------------Oracle9i------Begin--------------------------------------

    D:/>sqlplus -

     

    SQL*Plus: Release 9.2.0.4.0 - Production

     

    用法: SQLPLUS [ [

  • ] [ ] [ ] ]
  • 其中

  • ::= -H | -V | [ [-L] [-M ] [-R ] [-S] ]
  • ::= [/ ][@ ] | / | /NOLOG

    ::= @ | [. ] [ ...]

    "-H" 显示 SQL*Plus 的版本标帜和使用语法

    "-V" 显示 SQL*Plus 的版本标帜

    "-L" 只尝试登录一次

    "-M " 使用 HTML 标志选项

    "-R " uses restricted mode

    "-S" uses silent mode

    -----------------------Oracle9i-------------End---------------------------------

     

    -----------------------Oracle10G Beta------Begin--------------------------------

     

    D:/>sqlplus -

     

    SQL*Plus: Release 10.1.0.0.0 - Beta

     

    用法: SQLPLUS [ [

  • ] [ ] [ ] ]
  • 其中

  • ::= -H | -V | [ [-L] [-M ] [-R ] [-S] ]
  • ::= [/ ][@ ] | / | /NOLOG

    ::= @ | [. ] [ ...]

    "-H" 显示 SQL*Plus 的版本标帜和使用语法

    "-V" 显示 SQL*Plus 的版本标帜

    "-C" 兼容性版本

    "-L" 只尝试登录一次

    "-M " 使用 HTML 标志选项

    "-R " uses restricted mode

    "-S" uses silent mode

    -----------------------Oracle10G Beta---END------------------------------------

     

    (我们从中也可以看出SQLPlus命令的一些变化,如新的参数等)

     

     

    其中 ”-M” 选项的语法如下:

     

    [-M[ARKUP] "HTML [ON|OFF] [HEAD text] [BODY text]

     

    [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]"

     

    如果我们在实际应用中,要对公司的某个Table进行每个月的报表 HTML 化,用 SQL*Plus 的这个特性很容易做到。

     

    举例如下:

     

    我们准备对 Scott 模式下的 DEPT 表进行处理。 DEPT 表内容:

     

    SQL> SELECT * FROM dept;

     

    DEPTNO DNAME LOC

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

    10 ACCOUNTING NEW YORK

    20 RESEARCH DALLAS

    30 SALES CHICAGO

    40 OPERATIONS BOSTON

     

     

    在系统命令行下输出 HTML 文件:

     

    将下面几行语句存到一个 .sql 脚本中(比如说 q.sql ) :

     

    SET ECHO OFF

    SET FEEDBACK OFF

    SELECT * FROM dept;

    SET ECHO ON

    SET FEEDBACK ON

    exit

     

    然后在命令行下调用如下命令:

     

    C:/> sqlplus -s -m "HTML ON HEAD DEPT 表格之内容 " Scott/tiger @c:/q.sql>Dept.html

     

    对这条命令简单的解释一下:其中 ”-s” 表示 silent 模式, ”-m” 表示启用 HTML Markup 选项,

    ”HEAD DEPT 表格之内容 ” 可以用来定制一个简单的标题。然后命令中跟的是数据库用户名字和密码,

    执行脚本,重定向到 Dept.html 中。

     

    输出 Dept.html 有如下内容(空白处已经截去):

     

    DEPT表格之内容

     

    DEPTNO DNAME LOC

    10 ACCOUNTING NEW YORK

    20 RESEARCH DALLAS

    30 SALES CHICAGO

    40 OPERATIONS BOSTON

     

    在 SQL*Plus 下输出文件

    在 SQL*Plus 中可以用 SET MARKUP 命令来做到。

     

    SET MARKUP

     

    用法 : SET MARKUP HTML [ON|OFF] [HEAD text] [BODY text]

     

    [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]

     

    把下面的内容存为一个 .sql 脚本 ( 比如说 C:/q.sql) :

     

     

     

    SET ECHO OFF

    SET FEEDBACK OFF

    SET MARKUP HTML ON SPOOL ON

    SPOOL c:/Dept.html

    SELECT * FROM dept;

    SPOOL OFF

    SET MARKUP HTML OFF

    SET ECHO ON

    SET FEEDBACK ON

    在 SQL*Plus 中调用,即可创建内容。在 C:中创建了名为 Dept.html 的 HTML 页面,如下所示:

     

    DEPTNO DNAME LOC

    10 ACCOUNTING NEW YORK

    20 RESEARCH DALLAS

    30 SALES CHICAGO

    40 OPERATIONS BOSTON

     

     

    注:由于格式化的问题,实际的显示效果可能有所不同.  

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值