1
<Term xmlns:xxxlocal="xx.xx.xx.xx" href="abcde?terms=1" policyTerm="1">
   <EffectiveDate>2012-05-22T00:00:00-04:00</EffectiveDate>
   <ExpirationDate>2013-05-22T00:00:00-04:00</ExpirationDate>
   <LocationCode>XXXXXX</LocationCode>
   <ProductRef href="products/XXXXXXXXXXXXXXXXXXXXX" idref="XXXXXXXXXXXXXXXXXXXXX" version="ZZZZZZZZZZZZZZZZZZZZZZZ">
       <CachedItem name="Label" value="I NEED TO EXTRACT THIS VALUE" />
    </ProductRef>
...

Label1underの VALUE を抽出しようとしてい<ProductRef>ます。

私はこれを試していますが、うまくいきません:

SELECT XmlDoc.value('(/Term/ProductRef[1]/CachedItem[@name=sql:variable("@Label")]/@value)[1]','varchar(100)')

エラーが発生し続けます:

メッセージ 9501、レベル 16、状態 2、行 1
XQuery: sql:variable('@Label') を解決できません。変数は、スカラー TSQL 変数として宣言する必要があります。

私は何を間違っていますか?

4

1 に答える 1

1

これを試して

SELECT @xml.value('(/Term/ProductRef[1]/CachedItem/@value)[1]','varchar(100)')

SQLFiddle のデモ

于 2013-02-08T16:44:16.863 に答える