** 用 ** ** 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< 登录 > ::= < 用户名 >[/< 口令 >][@<connect_string>] | / | /NOLOG
6
7< 启动 > : : = @< 文件名 >[.<ext>] [< 参数 > ...]
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> 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:\> sqlplus -s -m "HTML ON HEAD DEPT 表格之内容 " Scott/tiger @c:\q.sql>Dept.html
69
70对这条命令简单的解释一下:其中 ”-s” 表示 silent 模式, ”-m” 表示启用 HTML Markup 选项, ”HEAD DEPT 表格之内容 ” 可以用来定制一个简单的标题。然后命令中跟的是数据库用户名字和密码,执行脚本,重定向到 Dept.html 中。
71
72输出 Dept.html 有如下内容(空白处已经截去):
73
74
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
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>