2011-04-18 42 views

回答

6
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 
+0

很酷,谢谢 – Peter 2011-04-18 01:30:05

0

您可以使用未公开的存储过程。

SELECT fn_varbintohexstr(@YourVarbar) 

你也应该能够只是将它转换为一个varchar(最大)以及

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 
+0

你好,谢谢,我想与你的第一个例子,并得到了“从数据类型的图像显式转换为varchar(最大值)不允许。” – Peter 2011-04-18 01:23:21

+0

强制转换不起作用。 – Martin 2011-12-16 17:11:47

相关问题