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

王朝oracle·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

Oracle的SQL*Plus工具有一些比较有趣的选项,合理的使用,能够给我们意想不到的后果。其中有一个”-M”选项能够创建用来创建HTML报表,在实际应用中很有用处。我们先来看看SQL*Plus(Oracle 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.sqlDept.html

对这条命令简单的解释一下:其中”-s”表示silent模式,”-m”表示启用HTML Markup选项,”HEAD DEPT表格之内容”可以用来定制一个简单的标题。然后命令中跟的是数据库用户名字和密码,执行脚本,重定向到Dept.html中。

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

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

附: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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航