SQL Server 2008 R2:使用存储为BLOB的XML(图像数据类型)

May*_*orn 4 xml sql sql-server blob reporting-services

数据库上MS SQL Server 2008 R2有一个存储为BLOB的列(具有"图像"数据类型).我也知道BLOB包含XML.

报告服务有没有办法提取这些信息?我如何查询或使用XML BLOB中存储的数据?

我已经阅读了将SQL IMAGE数据类型转换为XML数据类型的内容; 然后@xml.query用来获取元素/属性值,这是个好主意吗?如何将BLOB(图像数据类型)转换为XML数据类型?如何检查我的XML是否具有模式(因此是类型化或非类型化的XML)?

或者是否有更简单的方法在包含XML的BLOB中检索数据以使用它来生成SSRS web report

Stu*_*tLC 5

是的,您可以转换ImageXml然后使用XQuery等功能来解析Xml文档.但是,您首先需要将其投射VARBINARY.

SELECT CAST(cast(SomeXmlStoredAsBlob AS VARBINARY(MAX)) AS XML) AS MyXml
FROM MyTable
Run Code Online (Sandbox Code Playgroud)

我建议尽快更改列类型 - 如果所有数据都是Xml,则按照上面的说法将其转换为Xml,如果有不同的格式,则使用 VARBINARY(MAX)

SqlFiddle在这里