SAP Sybase ASA SQL语句直接生成HTML结果

在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”

a.html内容为:

[html][/html]

view plaincopyprint?

  1. id col2
  2. 1 中国
  3. 2 spring

我们可以用SQL语句为之生成这样的结果:

[sql][/sql]

view plaincopyprint?

  1. select xmlelement(name “html”,
  2.             (xmlelement (name “body”,
  3.             xmlelement(name “thead”,
  4.              xmlelement(name “tr”,
  5.                 xmlelement(name “th”,  ‘id’),
  6.                 xmlelement(name “th”, ‘col2’)
  7.              )
  8.             ),
  9.         xmlelement(name “tbody”,
  10.             xmlagg( xmlelement (name “tr”,
  11.                        xmlelement(name “td”, id),
  12.                        xmlelement(name “td”, col2)
  13.                    )))))
  14. ) from t;

结果是这样的:

[html][/html]

view plaincopyprint?

  1. <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:

[sql][/sql]

view plaincopyprint?

  1. select xmlelement(name “html”,
  2.             xmlelement (name “head”,
  3.                 xmlelement(name “title”, ‘t表转换’),
  4.                 xmlelement(name “META”, xmlattributes(‘Content-Type’ as “http-equiv” , ‘text/html;charset=GBK’ as “content”))
  5.             ),
  6.             (xmlelement (name “body”,
  7.                 xmlelement(name “thead”,
  8.                     xmlelement(name “tr”,
  9.                     xmlelement(name “th”,  ‘id’),
  10.                     xmlelement(name “th”, ‘col2’)
  11.                 )
  12.                 ),
  13.                 xmlelement(name “tbody”,
  14.                     xmlagg( xmlelement (name “tr”,
  15.                        xmlelement(name “td”, id),
  16.                        xmlelement(name “td”, col2)
  17.                     )))))
  18. ) from t;

得到的html内容如下:

[html][/html]

view plaincopyprint?

  1. <html>
  2.   <head>
  3.     <title>t表转换</title>
  4.     <META http-equiv=”Content-Type”
  5.     content=”text/html;charset=GBK” />
  6.   </head>
  7.   <body>
  8.     <thead>
  9.       <tr>
  10.         <th>id</th>
  11.         <th>col2</th>
  12.       </tr>
  13.     </thead>
  14.     <tbody>
  15.       <tr>
  16.         <td>1</td>
  17.         <td>中国</td>
  18.       </tr>
  19.       <tr>
  20.         <td>2</td>
  21.         <td>spring</td>
  22.       </tr>
  23.     </tbody>
  24.   </body>
  25. </html>

标签