我有一个blob列。这是截图:
你可以看到我有一个TBDOCUMENTS
表。在此表中,DOCUMENT
列为BLOB
。我想读这个专栏。然后我知道对于这个特定的DOCUMENTURL
这个列包含xml。所以我想把它转换成XML。然后我想把这个XML写在一个文件中。
如何在SQL Server中执行此操作?我正在使用SQL Server 2014
答案 0 :(得分:0)
要读取存储在blob列中的xml(例如varbinary
),您可以使用CONVERT
:
select CONVERT(xml,(CONVERT(varbinary(max),DOCUMENT)))
from TBDOCUMENTS
where DOCUMENTURL='...'
现在您可以将此字符串写入XML文件。我认为SQL Server可能不适合这项任务;尽管如此,有很多技术可以实现这一目标,例如使用bcp(更多信息here和here)
正如评论中所报告的,使用CONVERT
时可能会出现与DTD相关的错误:
不允许使用内部子集DTD解析XML。使用带有样式选项2的CONVERT来启用有限的内部子集DTD支持。
在这种情况下,使用CONVERT
命令的xml-styles选项(更多信息here)修复了问题:
select CONVERT(xml,(CONVERT(varbinary(max),DOCUMENT)), 2)
from TBDOCUMENTS
where DOCUMENTURL='...'