2014-02-18 3 views
2

У меня есть XML, хранящийся в SQL как тип изображения. То, что я пытаюсь и на самом деле удалось выполнить, - это получить данные из этого хранимого xml. Проблема в том, что данные хранятся как unicode, но то, что я получаю, - это тип данных ascii. Я пробовал много, но не могу сделать эту работу.Как читать данные из XML, который хранится как тип изображения в SQL?

DECLARE @xml XML; 
set @xml = convert(xml,(CONVERT(varchar(max), @data))); 
SELECT 
T.c.query('data(node1/id)') as 'id', 
T.c.value('node1[1]/name[1]','nvarchar(100)') as 'name' 
FROM @xml.nodes('Test1/Test2') T(c) 

Я преобразование данных в VARCHAR (макс), потому что я не могу получить какие-либо данные, когда я бросил его в NVARCHAR (макс). Например, если я изменю свой код на

set @xml = convert(xml,(CONVERT(nvarchar(max), @data))); 

Я не вижу никаких данных.

Спасибо за помощь.

+1

Возможно, было бы более целесообразно тратить время на постоянное изменение типа данных столбца (либо на «xml», если все значения являются xml или «nvarchar (max)» в противном случае). 'image' устарел. –

+0

Какой тип данных является '@ data'? –

+0

Он сохраняется как изображение на сервере Sql, и я получаю его на локальной переменной как varbinary (max) – user3322380

ответ

0

Попробуйте конвертировать в xml на лету.