用Oracle的SQL*Plus工具创建HTML页面


用Oracle的SQL*Plus工具创建HTML页面

作者:Fenng

Oracle的SQLPlus工具有一些比较有趣的选项,合理的使用,能够给我们意想不到的后果。其中有一个”-M”选项能够创建用来创建HTML报表,在实际应用中很有用处。我们先来看看SQLPlus(Oracle 8i)的一些选项:

C:>SQLPLUS -

用法: SQLPLUS [ [

  1<option>] [<logon>] [<start>] ]   
  2  
  3其中 <option> ::= - | -? | [ [-M <o>] [-R <n>] [-S] ]   
  4  
  5&lt;登录&gt; ::= &lt;用户名&gt;[/&lt;口令&gt;][@<connect_string>] | / | /NOLOG   
  6  
  7&lt;启动&gt; : : = @&lt;文件名&gt;[.<ext>] [&lt;参数&gt; ...]   
  8  
  9"-"显示使用语法   
 10  
 11"-?"显示 SQL*Plus 版本标帜   
 12  
 13"-M <o>" 使用 HTML 标志选项 <o>   
 14  
 15"-R <n>" uses restricted mode <n>   
 16  
 17"-S" uses silent mode   
 18  
 19”-M”选项指定在输出的时侯使用HTML标记来输出数据,用以代替普通的文本。   
 20  
 21  
 22  
 23其中”-M”选项的语法如下:   
 24  
 25[-M[ARKUP] "HTML [ON|OFF] [HEAD text] [BODY text]   
 26  
 27[ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]"   
 28  
 29  
 30  
 31如果我们在实际应用中,要对公司的某个Table进行每个月的报表HTML化,用SQL*Plus的这个特性很容易做到。   
 32  
 33  
 34举例如下:   
 35  
 36我们准备对Scott模式下的DEPT表进行处理。DEPT表内容:   
 37  
 38  
 39  
 40SQL&gt; SELECT * FROM dept;   
 41  
 42  
 43  
 44DEPTNO DNAME LOC   
 45  
 46\---------- -------------- -------------   
 47  
 4810 ACCOUNTING NEW YORK   
 49  
 5020 RESEARCH DALLAS   
 51  
 5230 SALES CHICAGO   
 53  
 5440 OPERATIONS BOSTON   
 55  
 56  
 57  
 58在系统命令行下输出HTML文件:   
 59  
 60  
 61  
 62将下面几行语句存到一个.sql脚本中(比如说q.sql):   
 63  
 64  
 65  
 66SET ECHO OFF   
 67  
 68SET FEEDBACK OFF   
 69  
 70SELECT * FROM dept;   
 71  
 72SET ECHO ON   
 73  
 74SET FEEDBACK ON   
 75  
 76exit   
 77  
 78然后在命令行下调用如下命令:   
 79  
 80C:\&gt; sqlplus -s -m "HTML ON HEAD DEPT表格之内容" Scott/tiger @c:\q.sql&gt;Dept.html   
 81  
 82  
 83  
 84对这条命令简单的解释一下:其中”-s”表示silent模式,”-m”表示启用HTML Markup选项,”HEAD DEPT表格之内容”可以用来定制一个简单的标题。然后命令中跟的是数据库用户名字和密码,执行脚本,重定向到Dept.html中。   
 85  
 86输出Dept.html有如下内容(空白处已经截去):   
 87  
 88  
 89  
 90  
 91  
 92  
 93  
 94在SQL*Plus下输出文件   
 95  
 96在SQL*Plus中可以用SET MARKUP命令来做到。   
 97  
 98SET MARKUP   
 99  
100用法: SET MARKUP HTML [ON|OFF] [HEAD text] [BODY text]   
101  
102[ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]   
103  
104  
105  
106把下面的内存存为一个.sql脚本(比如说C:\q.sql):   
107  
108  
109  
110SET ECHO OFF   
111  
112SET FEEDBACK OFF   
113  
114SET MARKUP HTML ON SPOOL ON   
115  
116SPOOL c:\Dept.html   
117  
118SELECT * FROM dept;   
119  
120SPOOL OFF   
121  
122SET MARKUP HTML OFF   
123  
124SET ECHO ON   
125  
126SET FEEDBACK ON   
127  
128  
129  
130在SQL*Plus中调用,即可创建内容在C:中创建了名为Dept.html的HTML页面,如下图所示:   
131  
132  
133  
134  
135  
136  
137  
138附:HTML页面输出样例源文件内容   
139  
140<html>
141<head>   
142  
143DEPT表格之内容   
144  
145<meta content="SQL*Plus 8.1.7" name="generator"/>
146</head>
147<body>
148<p>
149<table border="1" width="90%">
150<tr>
151<th>   
152  
153DEPTNO   
154  
155</th>
156<th>   
157  
158DNAME   
159  
160</th>
161<th>   
162  
163LOC   
164  
165</th>
166</tr>
167<tr>
168<td align="right">   
169  
17010   
171  
172</td>
173<td>   
174  
175ACCOUNTING   
176  
177</td>
178<td>   
179  
180NEW YORK   
181  
182</td>
183</tr>
184<tr>
185<td align="right">   
186  
18720   
188  
189</td>
190<td>   
191  
192RESEARCH   
193  
194</td>
195<td>   
196  
197DALLAS   
198  
199</td>
200</tr>
201<tr>
202<td align="right">   
203  
20430   
205  
206</td>
207<td>   
208  
209SALES   
210  
211</td>
212<td>   
213  
214CHICAGO   
215  
216</td>
217</tr>
218<tr>
219<td align="right">   
220  
22140   
222  
223</td>
224<td>   
225  
226OPERATIONS   
227  
228</td>
229<td>   
230  
231BOSTON   
232  
233</td>
234</tr>
235</table>
236<p>
237</p></p></body>
238</html></n></n></o></o></ext></connect_string></n></o></option></start></logon></option>
Published At
Categories with 数据库类
Tagged with
comments powered by Disqus