我在sql server 2005数据库中有一个列,它将xml存储为varbinary, 值看起来像:
0x3C3F54657374696E672075706C6F616 // but much longer
是否有在线转换工具将其转换为可读字符串?
答案 0 :(得分:7)
select CAST(0x3C3F54657374696E672075706C6F61643F3E3C666F6F3E3C2F666F6F3E as XML)
似乎有用。
因为您的数据类型似乎是image
...
;with t(c) as
(
select CAST(0x3C3F54657374696E672075706C6F61643F3E3C666F6F3E3C2F666F6F3E as IMAGE)
)
select CAST(CAST(c as VARBINARY(MAX)) as XML)
from t
答案 1 :(得分:0)
您可以使用未记录的存储过程。
SELECT fn_varbintohexstr(@YourVarbar)
您还应该能够将其转换为varchar(max)以及
Select CAST(@YourVarbar as Varchar(max))
第三种方法是从中创建XML文档并使用forXML 以下位置的示例http://beyondrelational.com/blogs/jacob/archive/2009/06/13/converting-varbinary-to-varchar-using-for-xml.aspx
DECLARE @x VARBINARY(10)
SELECT @x = CAST('10' as VARBINARY(10))
SELECT @x AS VarBinaryValue
SELECT (
SELECT
CHAR(SUBSTRING(@x,number,1)) AS 'text()'
FROM master..spt_values
WHERE type = 'P'
AND Number BETWEEN 1 AND LEN(@x)
FOR XML PATH('')
) AS TextValue