将SQL Server varbinary字段转换为字符串?

时间:2011-04-18 01:00:04

标签: sql-server sql-server-2005

我在sql server 2005数据库中有一个列,它将xml存储为varbinary, 值看起来像:

0x3C3F54657374696E672075706C6F616 // but much longer

是否有在线转换工具将其转换为可读字符串?

2 个答案:

答案 0 :(得分:7)

select CAST(0x3C3F54657374696E672075706C6F61643F3E3C666F6F3E3C2F666F6F3E as XML)

似乎有用。

Online Conversion Link

因为您的数据类型似乎是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