Как читать данные из XML, которые хранятся как тип изображения в SQL?

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

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(max), потому что не могу получить никаких данных, когда преобразую их в nvarchar(max). Например, если я изменю свой код на

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

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

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


person user3322380    schedule 18.02.2014    source источник
comment
Вероятно, было бы более целесообразно потратить время на постоянное изменение типа данных столбца (либо на xml, если все значения xml, либо на nvarchar(max) в противном случае). image устарел.   -  person Damien_The_Unbeliever    schedule 18.02.2014
comment
Какой тип данных @data?   -  person Mikael Eriksson    schedule 18.02.2014
comment
Он сохраняется как изображение на сервере Sql, и я получаю его в локальной переменной как varbinary(max)   -  person user3322380    schedule 18.02.2014
comment
Вы пытались конвертировать напрямую в XML? cast(@data as xml).   -  person Mikael Eriksson    schedule 18.02.2014
comment
Это помогло. Спасибо.   -  person user3322380    schedule 19.02.2014


Ответы (1)


Попробуйте конвертировать в xml на лету. cast(@data as xml)

person CoderKK    schedule 27.05.2014