用Oracle的SQL*Plus工具創建HTML頁面
2024-08-29 13:31:08
供稿:網友
用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中。
輸出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>