"-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
注:由于格式化的问题,实际的显示效果可能有所不同.