2013-07-11 49 views
4

我需要檢索存儲在SQL Server中的圖像數據的XML文件。檢索數據2005

我使用這個查詢 -

select 
    convert(varchar, convert(binary, zd.validcontent)) 
from 
    zonedata zd 
join 
    contentitem ci on zd.itemid = ci.itemid 
where 
    id = @dpathid 

我得到的文本,但但結果只返回的XML文件的一小部分 -

<?xml version="1.0" encoding=" 

請幫助。謝謝。

+4

沒有SQL Server 2003.有效年份爲2000年,2005年,2008年,2008年R2,2012年和2014年(* CTP *) –

+0

@Damien_The_Unbeliever對不起,我的壞。 –

+1

如果你使用'CONVERT(VARCHAR ....'沒有**明確指定爲'VARCHAR'長度**,你會得到30個字符。這是最好的推薦給pracise *** ***總是明確地指定的長度一個'VARCHAR' - 在'CONVERT',作爲參數使用時 - 無處不在,真的很感謝 –

回答

8

char and varchar

焦炭 [(Ñ

VARCHAR [(ñ | 米斧)]

Ñ未在數據定義或變量聲明語句中指定,則默認長度爲1.當Ñ使用CAST和CONVERT函數當未指定,則缺省長度是30個。

所以,請指定一個合適的長度(如max如@Devart的回答所示,或者任何更合適的值)

20

可能這是有幫助的你 -

SELECT CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), zd.validcontent)) 
FROM zonedata zd 
JOIN contentitem ci ON zd.itemid = ci.itemid 
WHERE ID = @dpathid 
+0

Devart,這是我所需要的解決方案。 –