SQL 服务器 2008 R2 : Working with XML stored as BLOB (image data type)

标签 sql sql-server xml reporting-services blob

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

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

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

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

最佳答案

是的,您可以将Image 转换为Xml,然后使用XQuery 等功能来解析Xml 文档。但是,您首先还需要通过 VARBINARY 进行转换。

SELECT CAST(cast(SomeXmlStoredAsBlob AS VARBINARY(MAX)) AS XML) AS MyXml
FROM MyTable

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

SqlFiddle here

关于SQL 服务器 2008 R2 : Working with XML stored as BLOB (image data type),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30473253/

相关文章:

mysql - 从列中选择值为 9 的行

sql - 查看或用户定义的函数?

java - JDBC 调用 Microsoft SQL Server 存储过程的同义词

java - Android - 一键更改到创建的下一个屏幕。下一件怎么办?

python - 旋转 SQLite 表,像 SQL 一样应该是

python - 如何使用 Python 2.7 和 pyodbc 将 None 转换为 NULL

sql - 为什么这个SQL语句很慢?

java - 设置整个盒子的可见性

xml - (XSLT,代码优化)如何输出引用兄弟节点值的节点..?

mysql - 列出员工项目