微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql-server – 使用SQL Server“FOR XML”:将结果数据类型转换为Text / varchar / string是什么?

我现在已经挣扎了将近一周,仍然没有找到任何解决方案 – .-

我的目标是通过查询“FOR XML”语句从sql Server接收XML,将此XML作为字符串/流转发到XSLT Transformer并将结果显示为HTML.

关于它的糟糕之处是我应该使用的Web服务器环境:IBM Domino 8.5.2,它通常使用Lotus Script和Lotus Notes数据库生成网站.

但是现在,当谈论大型数据库(如我们的网站点统计数据,将数百万次点击存储为数据集)时,Notes数据库性能已经达到了死胡同.因此,我们决定迁移到mssql2008服务器,该服务器可以更快地提供自定义筛选结果.

我确实设法建立与sql Server的连接,提交查询并将结果作为xml.但现在? :)似乎sql Server提供了他的“for xml” – 结果作为一种自己奇怪的二进制编码字符数据类型,在打印它们或保存到文件时没有任何意义. Lotus Script(几乎是VBScript)似乎没有办法处理这个xml数据类型.

我尝试了各种方法,我可以找到结果 – Lotus构建在ODBC类中,LCConnection通过OleDB,ADO连接通过OleDB ……但每次尝试都以一堆不可读的数据结束.

我可以想象多米诺骨牌和sql Server之间的网络服务,为我的多米诺骨牌脚本准备数据作为字符串,但这是我想避免的不必要的开销.

你能在sql语句中告诉你想要生成的xml是什么数据类型吗?就像对于字段的cast()/ convert()而言,对于整个xml结果?这样我就可以将结果作为text / varchar字段读取?

谢谢,克里斯

解决方法

我知道我以前做过这样的事情,我认为这就是你所追求的:
SELECT CAST((SELECT [Columns] FROM [Tables] FOR XML PATH('')) AS VARCHAR(MAX)) AS XmlData

这会将您生成的任何内容作为XML生成,而不是Lotus Notes可能接受的文本数据.

编辑:如果需要以另一种样式生成XML,可以将FOR XML PATH(”)更改为FOR XML AUTO.

原文地址:https://www.jb51.cc/mssql/83982.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐