用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其中  ”-M”  选项的语法如下: 
 22
 23[-M[ARKUP] "HTML [ON|OFF] [HEAD text] [BODY text] 
 24
 25[ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]" 
 26
 27如果我们在实际应用中,要对公司的某个  Table  进行每个月的报表  HTML  化,用  SQL*Plus  的这个特性很容易做到。 
 28
 29  
 30举例如下: 
 31
 32我们准备对  Scott  模式下的  DEPT  表进行处理。  DEPT  表内容: 
 33
 34SQL&gt; SELECT * FROM dept; 
 35
 36DEPTNO DNAME  LOC 
 37
 38\---------- -------------- ------------- 
 39
 4010 ACCOUNTING  NEW YORK 
 41
 4220 RESEARCH  DALLAS 
 43
 4430 SALES  CHICAGO 
 45
 4640 OPERATIONS  BOSTON 
 47
 48** 在系统命令行下输出  ** ** HTML  ** ** 文件:  ** ** **
 49
 50** **
 51
 52将下面几行语句存到一个  .sql  脚本中(比如说  q.sql  )  : 
 53
 54SET ECHO OFF 
 55
 56SET FEEDBACK OFF 
 57
 58SELECT * FROM dept; 
 59
 60SET ECHO ON 
 61
 62SET FEEDBACK ON 
 63
 64exit 
 65
 66然后在命令行下调用如下命令: 
 67
 68C:\&gt; sqlplus -s -m "HTML ON HEAD DEPT  表格之内容  " Scott/tiger @c:\q.sql&gt;Dept.html 
 69
 70对这条命令简单的解释一下:其中  ”-s”  表示  silent  模式,  ”-m”  表示启用  HTML Markup  选项,  ”HEAD DEPT  表格之内容  ”  可以用来定制一个简单的标题。然后命令中跟的是数据库用户名字和密码,执行脚本,重定向到  Dept.html  中。 
 71
 72输出  Dept.html  有如下内容(空白处已经截去): 
 73
 74![](http://dev.csdn.net/Develop/ArticleImages/18/18661/CSDN_Dev_Image_2003-5-271102330.png)
 75
 76** 在  ** ** SQL*Plus  ** ** 下输出文件  ** ** **
 77
 78在  SQL*Plus  中可以用  SET MARKUP  命令来做到。 
 79
 80SET MARKUP 
 81
 82用法  : SET MARKUP HTML [ON|OFF] [HEAD text] [BODY text] 
 83
 84[ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}] 
 85
 86把下面的内存存为一个  .sql  脚本  (  比如说  C:\q.sql)  : 
 87    
 88    
 89    SET ECHO OFF
 90    
 91    
 92    SET FEEDBACK OFF
 93    
 94    
 95    SET MARKUP HTML ON SPOOL ON
 96    
 97    
 98    SPOOL c:\Dept.html 
 99    
100    
101    SELECT * FROM dept;
102    
103    
104    SPOOL OFF
105    
106    
107    SET MARKUP HTML OFF
108
109SET ECHO ON 
110
111SET FEEDBACK ON 
112
113在  SQL*Plus  中调用,即可创建内容在  C:  中创建了名为  Dept.html  的  HTML  页面,如下图所示: 
114
115![](http://dev.csdn.net/Develop/ArticleImages/18/18661/CSDN_Dev_Image_2003-5-271102332.png)
116
117附:  HTML  页面输出样例源文件内容 
118
119<html>
120<head>
121
122DEPT  表格之内容 
123
124<meta content="SQL*Plus 8.1.7" name="generator"/>
125</head>
126<body>
127<p>
128<table border="1" width="90%">
129<tr>
130<th>
131
132DEPTNO 
133
134</th>
135<th>
136
137DNAME 
138
139</th>
140<th>
141
142LOC 
143
144</th>
145</tr>
146<tr>
147<td align="right">
148
14910 
150
151</td>
152<td>
153
154ACCOUNTING 
155
156</td>
157<td>
158
159NEW YORK 
160
161</td>
162</tr>
163<tr>
164<td align="right">
165
16620 
167
168</td>
169<td>
170
171RESEARCH 
172
173</td>
174<td>
175
176DALLAS 
177
178</td>
179</tr>
180<tr>
181<td align="right">
182
18330 
184
185</td>
186<td>
187
188SALES 
189
190</td>
191<td>
192
193CHICAGO 
194
195</td>
196</tr>
197<tr>
198<td align="right">
199
20040 
201
202</td>
203<td>
204
205OPERATIONS 
206
207</td>
208<td>
209
210BOSTON 
211
212</td>
213</tr>
214</table>
215<p>
216</p></p></body>
217</html></n></n></o></o></ext></connect_string></n></o></option></start></logon></option>
Published At
Categories with 数据库类
Tagged with
comments powered by Disqus