用
Oracle
的
SQL*Plus
工具创建
HTML
页面
作者:
Fenng
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.sql>Dept.html
对这条命令简单的解释一下:其中
”-s”
表示
silent
模式,
”-m”
表示启用
HTML Markup
选项,
”HEAD DEPT
表格之内容
”
可以用来定制一个简单的标题。然后命令中跟的是数据库用户名字和密码,执行脚本,重定向到
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
页面.