В операторе выбора SQL я пытаюсь вставить значение столбца в объявление пространства имен в функции Xquery 'value' следующим образом:
select
ResponseAsXML.value('declare namespace ns0="sql:column("subresult.XmlNamespace")";(//ns0:HLLoop1/ns0:TD5/TD503[../../ns0:HL/HL03 = ''S''])[1]', 'varchar(255)') As MyXMLElementVlaue
from
(Select
Cast(ResponseXML As XML) As ResponseAsXML,
Case
When e.MyKey = 2
Then 'http://xxxxx.com/blah1'
When e.MyKey = 3
Then 'http://xxxxx.com/blah2'
Else 'http://xxxxx.com/blah3'
End As XmlNamespace
from
...) subresult
Но я получаю сообщение об ошибке:
XQuery [trackingnos.ResponseAsXML.value ()]: все записи пролога должны
заканчивается ';', найдено 'subresult.XmlNamespace'.
Я не могу включить свой столбец пространства имен напрямую (путем конкатенации), потому что получаю ошибку, что аргумент должен быть строковым литералом.
Есть идеи, как мне это сделать, или что я здесь не так сделал?