|
PLSQL | Oracle | 1496 次查看 |
|---|---|---|
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中。 输出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> |
||