【发布时间】:2014-03-13 13:27:03
【问题描述】:
我正在尝试查询包含一些 varbinary 格式的 XML 值的表,并且难以获得有意义的输出。
我查看了几个 Google 结果和 Stack Overflow 答案,例如 this one,但建议的答案似乎对我不起作用。
我的最新版本查询如下:
select top 100 EntryDataAndTime, EntryType, RequestID, Sequence, ServerName,
cast(XML as varchar(max)) as xml_string
from RequestResponseLog
这会以如下格式返回最后一列:‹½U_oÓ0//¼ ¾ê+Zœ...
我也试过了:
select top 100 EntryDataAndTime, EntryType, RequestID, Sequence, ServerName,
Convert(varchar(8000), XML, 2) as xml_string
from RequestResponseLog
这似乎以十六进制格式返回最后一列,例如1F8B0800000000000400BD555F6FD330102F2FBC...
我上面提到的大多数 Google 结果和 Stack Overflow 问题都包含一个步骤,您可以在其中执行类似...
declare @b varbinary(max)
set @b = 0x5468697320697320612074657374
在你使用 cast 函数之前。我不完全清楚 0x54.. 值是什么,但这似乎假设您只想转换单个值而不是像我一样转换多行,除非我误解了?
任何帮助转换为在查询中工作的可读字符串将不胜感激。
【问题讨论】:
-
您是否尝试过投射到
nvarchar(max)或xml。 -
@MikaelEriksson 这两个都不行,我会出错。
标签: xml sql-server-2008 varbinary