文章详情页
用Oracle的SQL*Plus工具创建HTML页面
用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 [ONOFF] [HEAD text] [BODY text] [ENTMAP {ONOFF}] [SPOOL {ONOFF}] [PRE[FORMAT] {ONOFF}]'假如我们在实际应用中,要对公司的某个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 OFFSET FEEDBACK OFFSELECT * FROM dept;SET ECHO ONSET FEEDBACK ONexit然后在命令行下调用如下命令: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 [ONOFF] [HEAD text] [BODY text][ENTMAP {ONOFF}] [SPOOL {ONOFF}] [PRE[FORMAT] {ONOFF}]把下面的内存存为一个.sql脚本(比如说C:q.sql):SET ECHO OFFSET FEEDBACK OFFSET MARKUP HTML ON SPOOL ONSPOOL c:Dept.html SELECT * FROM dept;SPOOL OFFSET MARKUP HTML OFFSET ECHO ONSET 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>
排行榜