读取 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='...'
我有一个 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
:
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='...'