SQL XML:如何将列值包括在Xquery值函数的字符串文字中

时间:2019-06-03 11:15:23

标签: sql xquery xquery-sql

在一个SQL select语句中,我试图将列值注入到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”。

我无法直接(通过串联)包含我的名称空间列,因为我收到一个错误,指出该参数必须是字符串文字。

有什么想法我该怎么做,或者我在这里做错了什么?

0 个答案:

没有答案