Oracle 的 SQL*Plus 工具有一些比較有趣的選項,合理的使用,能夠給我們意想不到的后果。其中有一個 ”-M” 選
項能夠創建用來創建 HTML 報表,在實際應用中很有用處。我們先來看看 SQL*Plus的一些選項:
-----------------------Oracle8i------Begin--------------------------------------
C:/>SQLPLUS -
用法 : SQLPLUS [ [] [
其中 ::= - | -? | [ [-M
< 登錄 > ::= < 用戶名 >[/< 口令 >][@
< 啟動 > : : = @< 文件名 >[.
"-" 顯示使用語法
"-?" 顯示 SQL*Plus 版本標幟
"-M
"-R
"-S" uses silent mode
”-M” 選項指定在輸出的時侯使用 HTML 標記來輸出數據,用以代替普通的文本。
-----------------------Oracle8i-------------End---------------------------------
-----------------------Oracle9i------Begin--------------------------------------
D:/>sqlplus -
SQL*Plus: Release 9.2.0.4.0 - Production
用法: SQLPLUS [ [] [
其中 ::= -H | -V | [ [-L] [-M
"-H" 顯示 SQL*Plus 的版本標幟和使用語法
"-V" 顯示 SQL*Plus 的版本標幟
"-L" 只嘗試登錄一次
"-M
"-R
"-S" uses silent mode
-----------------------Oracle9i-------------End---------------------------------
-----------------------Oracle10G Beta------Begin--------------------------------
D:/>sqlplus -
SQL*Plus: Release 10.1.0.0.0 - Beta
用法: SQLPLUS [ [] [
其中 ::= -H | -V | [ [-L] [-M
"-H" 顯示 SQL*Plus 的版本標幟和使用語法
"-V" 顯示 SQL*Plus 的版本標幟
"-C" 兼容性版本
"-L" 只嘗試登錄一次
"-M
"-R
"-S" uses silent mode
-----------------------Oracle10G Beta---END------------------------------------
(我們從中也可以看出SQLPlus命令的一些變化,如新的參數等)
其中 ”-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 有如下內容(空白處已經截去):
DEPT表格之內容
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
在 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 頁面,如下所示:
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
注:由于格式化的問題,實際的顯示效果可能有所不同.
新聞熱點
疑難解答