读取 BLOB 列并将其转换为文件中的 xml

Read BLOB column and convert it to xml in a file

我有一个 blob 列。这是屏幕截图:

如您所见,我有一个 TBDOCUMENTS table。在这个 table DOCUMENT 列中是 BLOB。我想阅读此专栏。然后我知道对于这个特定的 DOCUMENTURL,此列包含 xml。所以我想把它转换成XML。然后我想把这个XML写在一个文件里。

如何在 SQL 服务器中执行此操作?我正在使用 SQL Server 2014

要读取存储在 blob 列中的 xml(例如 varbinary),您可以使用 CONVERT:

select CONVERT(xml,(CONVERT(varbinary(max),DOCUMENT))) 
from TBDOCUMENTS
where DOCUMENTURL='...'

现在您可以将此字符串写入 XML 文件。我认为 SQL 服务器可能不适合这项任务;尽管如此,还是有很多技术可以实现这一点,例如使用 bcp(更多信息 here and

如评论中所述,使用 CONVERT:

时可能会出现与 DTD 相关的错误

Parsing XML with internal subset DTDs not allowed. Use CONVERT with style option 2 to enable limited internal subset DTD support.

在这种情况下,使用 CONVERT 命令的 xml-styles 选项(更多信息 here)修复了问题:

select CONVERT(xml,(CONVERT(varbinary(max),DOCUMENT)), 2)
from TBDOCUMENTS
where DOCUMENTURL='...'