5

我需要检索在 SQL Server 中存储为图像数据的 xml 文件。

我正在使用这个查询 -

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

2 回答 2

21

可能这对您有帮助-

SELECT CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), zd.validcontent))
FROM zonedata zd
JOIN contentitem ci ON zd.itemid = ci.itemid
WHERE ID = @dpathid
于 2013-07-11T08:01:01.957 回答
8

charvarchar

字符 [ ( n ) ]

varchar [ ( n | max ) ]

在数据定义或变量声明语句中未指定 n 时,默认长度为 1。使用CAST 和 CONVERT 函数时未指定 n 时,默认长度为 30

因此,请指定一个合适的长度(例如max,如@Devart 的答案所示,或任何更合适的值)

于 2013-07-11T08:05:21.147 回答