SQL XML: как включить значение столбца в строковый литерал для функции значения Xquery - PullRequest
0 голосов
/ 03 июня 2019

В операторе выбора 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'.

Я не могу включить свой столбец пространства имен напрямую (путем конкатенации), потому что получаю ошибку, что аргумент должен быть строковым литералом.

Есть идеи, как мне это сделать, или что я здесь не так сделал?

...