#sql-server #xml
#sql-сервер #xml
Вопрос:
Как я могу получить значение тега инструкции обработки в SQL Server?
declare @x XML =
'<root>
<entity>
<?ent LOOKUPS?>
</entity>
<entity>
<?ent STAFF?>
</entity>
<entity>
<?ent SIR?>
</entity>
</root>';
SELECT x.xml.value('processing-instruction(ent)[1]','varchar(30)')
FROM @x.nodes('/root/entity') x(xml);
Оператор select возвращает ошибку:
Сообщение 2225, уровень 16, состояние 1, строка 29
XQuery [value()]: ожидался строковый литерал
Ответ №1:
Вам нужно заключить «ent» в двойные кавычки:
SELECT x.xml.value('data(processing-instruction("ent")[1])','varchar(30)')
FROM @x.nodes('/root/entity') x(xml);