文章詳情頁
用Oracle的SQL*Plus工具創建HTML頁面
瀏覽:3日期:2023-11-18 19:37:31
用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>
排行榜