这个也许不算什么秘密, 很多人大概都知道, 不过用过的人也许不多.
在8.1.7版本(也许是816? 不太确定)以后, sql*plus中有一个set markup html的命令, 可以将sql*plus的输出以html格式展现.
[@more@]">scott@O9I.US.ORACLE.COM> select empno, ename from emp where rownum<3;
EMPNO | ENAME |
|---|---|
7369 | SMITH |
7499 | ALLEN |
注意其中的spool on, 当在屏幕上输出的时候, 我们看不出与不加spool on有什么区别, 但是当我们使用spool filename 输出到文件的时候, 会看到spool文件中出现了
等tag.">scott@O9I.US.ORACLE.COM> spool c:emp.htm
">scott@O9I.US.ORACLE.COM> /
EMPNO | ENAME |
|---|---|
7369 | SMITH |
7499 | ALLEN |
">scott@O9I.US.ORACLE.COM> spool off
用ie打开emp.htm文件后的样式如下:
现在看看spool off的情况下:
">scott@O9I.US.ORACLE.COM> set markup html on spool off
">scott@O9I.US.ORACLE.COM> spool c:emp2.htm
">scott@O9I.US.ORACLE.COM> /
EMPNO | ENAME |
|---|---|
7369 | SMITH |
7499 | ALLEN |
">scott@O9I.US.ORACLE.COM> spool off
由于这段代码中没有html文件头, 所以我们可以直接作为内容插入到网页中, 现在我们就可以把这段代码放到下面作为示例:
| EMPNO | ENAME |
|---|---|
| 7369 | SMITH |
| 7499 | ALLEN |
总结: 如果要生成一个完整的html文件, 就使用spool on选项, 如果只是要内容部分(用来添加到一个现有的网页中), 那么就使用spool off选项.
另外, set markup html还有很多选项可以用来定制生成的html的各个部分, 例如head, body, table等, 这里不再逐一说明, 详细信息可以参考SQL*Plus User's Guide and Reference.
适用场景: 当需要定时更新一个从数据库中获取内容的静态页面时, 这种方法绝对是快捷的并且容易实现的.
(需要引用, 请注明出处: http://blog.itpub.net/oldwain)