Запрос атрибутов из XML файла
Создал таблицу в MS SQL 2008 со столбцом типа xml (связал его с коллекцией схем созданной ранее на основе xsd схемы), затем сам xml загрузил в эту ячейку.
Вот пример XML:
<AddressObjectTypes>
<AddressObjectType LEVEL="0" SOCRNAME="" KOD_T_ST="0" />
<AddressObjectType LEVEL="1" SOCRNAME="Автономный округ" SCNAME="АО" KOD_T_ST="101" />
<AddressObjectType LEVEL="1" SOCRNAME="Автономная область" SCNAME="Аобл" KOD_T_ST="102" />
<AddressObjectType LEVEL="1" SOCRNAME="Город" SCNAME="г" KOD_T_ST="103" />
Теперь пробую извлечь оттуда значения атрибутов:
select
x.value('(/AddressObjectTypes/AddressObjectType[@LEVEL="1"]/@SOCRNAME)[1]','varchar(50)')
from T
Ошибка:
Оператор "=" невозможно применить к операндам "<anonymous>" и "xs:string".
Что я делаю не так? Возможно ли выбрать все атрибуты SOCRNAME у которых level=1?
Источник: Stack Overflow на русском