在ASA數據庫中,output, input子句並不能直接用於SQL語句中,只能用於isql交互命令行裏。因此要在存儲過程或者程序裏生成html格式的結果,還需要自己實現,但也不難。
如:
select * from t
得到結果:
id,col2
1,'中國'
2,'spring'
輸出爲html格式:
select * from t ;
output to "a.html" format HTML;
- 執行時間: 0.016 秒
- 正在將數據導出到 "D:\asa120\BIN32\a.html"
- 2 行已寫入 "D:\asa120\BIN32\a.html"
<html>
<head>
<META content="text/html;charset=GBK">
</head>
<body>
<table border>
<tr><th>id</th><th>col2</th></tr>
<tr><td>1</td><td>中國</td></tr>
<tr><td>2</td><td>spring</td></tr>
</table>
</body>
</html>
我們可以用SQL語句爲之生成這樣的結果:
select xmlelement(name "html",
(xmlelement (name "body",
xmlelement(name "thead",
xmlelement(name "tr",
xmlelement(name "th", 'id'),
xmlelement(name "th", 'col2')
)
),
xmlelement(name "tbody",
xmlagg( xmlelement (name "tr",
xmlelement(name "td", id),
xmlelement(name "td", col2)
)))))
) from t;
結果是這樣的:
<html><body><thead><tr><th>id</th><th>col2</th></tr></thead><tbody><tr><td>1</td><td>中國</td></tr><tr><td>2</td><td>spring</td></tr></tbody></body></html>
這個結果並沒有輸出html文件的head, META等信息,下邊是一個完整的sql:select xmlelement(name "html",
xmlelement (name "head",
xmlelement(name "title", 't錶轉換'),
xmlelement(name "META", xmlattributes('Content-Type' as "http-equiv" , 'text/html;charset=GBK' as "content"))
),
(xmlelement (name "body",
xmlelement(name "thead",
xmlelement(name "tr",
xmlelement(name "th", 'id'),
xmlelement(name "th", 'col2')
)
),
xmlelement(name "tbody",
xmlagg( xmlelement (name "tr",
xmlelement(name "td", id),
xmlelement(name "td", col2)
)))))
) from t;
得到的html內容如下:
<html>
<head>
<title>t錶轉換</title>
<META http-equiv="Content-Type"
content="text/html;charset=GBK" />
</head>
<body>
<thead>
<tr>
<th>id</th>
<th>col2</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>中國</td>
</tr>
<tr>
<td>2</td>
<td>spring</td>
</tr>
</tbody>
</body>
</html>
仔細一看,上邊的結果少了<table border="1">.....</table>
加上xmlelement(name "table", xmlattributes('1' as "border")),即可
完整的sql如下:
select xmlelement(name "html", xmlelement (name "head", xmlelement(name "title", 't錶轉換'), xmlelement(name "META", xmlattributes('Content-Type' as "http-equiv" , 'text/html;charset=GBK' as "content")) ), (xmlelement (name "body", xmlelement(name "table", xmlattributes('1' as "border"), xmlelement(name "thead", xmlelement(name "tr", xmlelement(name "th", 'id'), xmlelement(name "th", 'col2') ) ), xmlelement(name "tbody", xmlagg( xmlelement (name "tr", xmlelement(name "td", id), xmlelement(name "td", col2) ) ) ) ) ) ) ) from t;
最終得到的結果如下:
<html>
<head>
<title>t錶轉換</title>
<META http-equiv="Content-Type"
content="text/html;charset=GBK" />
</head>
<body>
<table border="1" >
<thead>
<tr>
<th>id</th>
<th>col2</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>中國</td>
</tr>
<tr>
<td>2</td>
<td>spring</td>
</tr>
</tbody>
</table>
</body>
</html>