用Oracle的SQL*Plus工具创建HTML页面

OracleSQL*Plus工具创建HTML页面<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

作者:Fenng

OracleSQL*Plus工具有一些比较有趣的选项,合理的使用,能够给我们意想不到的后果。其中有一个”-M”选项能够创建用来创建HTML报表,在实际应用中很有用处。我们先来看看SQL*PlusOracle 8i)的一些选项:

C:\>SQLPLUS -

用法: SQLPLUS [ [<option>] [<logon>] [<start>] ]

其中 <option> ::= - | -? | [ [-M <o>] [-R <n>] [-S] ]

<登录> ::= <用户名>[/<口令>][@<connect_string>] | / | /NOLOG

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

"-"显示使用语法

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

"-M <o>" 使用 HTML 标志选项 <o>

"-R <n>" uses restricted mode <n>

"-S" uses silent mode

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

其中”-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有如下内容(空白处已经截去):

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 414.75pt; HEIGHT: 108.75pt" o:ole="" type="#_x0000_t75"><img o:title="" src="/Develop/ArticleImages/18/18661/CSDN_Dev_Image_2003-5-271102330.png"></shape>

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.htmlHTML页面,如下图所示:

<shape id="_x0000_i1026" style="WIDTH: 414.75pt; HEIGHT: 92.25pt" o:ole="" type="#_x0000_t75"><img o:title="" src="/Develop/ArticleImages/18/18661/CSDN_Dev_Image_2003-5-271102332.png"></shape>

附:HTML页面输出样例源文件内容

<html>

<head>

DEPT表格之内容

<meta name="generator" content="SQL*Plus 8.1.7">

</head>

<body>

<p>

<table border="1" width="90%">

<tr>

<th>

DEPTNO

</th>

<th>

DNAME

</th>

<th>

LOC

</th>

</tr>

<tr>

<td align="right">

10

</td>

<td>

ACCOUNTING

</td>

<td>

NEW YORK

</td>

</tr>

<tr>

<td align="right">

20

</td>

<td>

RESEARCH

</td>

<td>

DALLAS

</td>

</tr>

<tr>

<td align="right">

30

</td>

<td>

SALES

</td>

<td>

CHICAGO

</td>

</tr>

<tr>

<td align="right">

40

</td>

<td>

OPERATIONS

</td>

<td>

BOSTON

</td>

</tr>

</table>

<p>

</body>

</html>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值