「[要素]という名前の要素はありません」以外の何かを返すようにSQL Server XQUERYを取得する方法

sql sql-server sql-server-2008 xquery
「[要素]という名前の要素はありません」以外の何かを返すようにSQL Server XQUERYを取得する方法

これが他の場所で回答された場合はおApび申し上げます。 エラーメッセージXQuery [Mytable.XMLData.nodes()]を取得し続けます: ‘Answer’という名前の要素はありません

SELECT
ref.value('/','nvarchar(1000)')
FROM   Mytable CROSS APPLY xmldata.nodes('Answer') R(ref)

--XML of Row


    test
    test
    2010-02-16T08:59:59

ルートノード(「答え」)、または子ノードのいずれかを取得するためにいくつかの異なるバリエーションを試しましたが、ステートメントを読み取りに変更した場合

SELECT
ref.value('/','nvarchar(1000)')
FROM   Mytable CROSS APPLY xmldata.nodes('/') R(ref)

結果testtest2010-02-16T08:59:59を取得します

最終的には、このデータを表形式で、たとえば

SELECT
    ref.value('/Title','nvarchar(1000)') as Title
    ref.value('/Description','nvarchar(1000)') as Description

etc..
    FROM   Mytable CROSS APPLY xmldata.nodes('/Deliverable') R(ref)

ご協力いただきありがとうございます

  3  0


ベストアンサー

プレイ中のXML名前空間には注意を払っていません。

クエリを実行する際には、これを考慮する必要があります。次のようなことをしてください。

;WITH XMLNAMESPACES('http://TempNameSpace.com/AnswerData.xsd' AS ns)
SELECT
  ref.value('(ns:*)[1]', 'nvarchar(1000)')
FROM Mytable
CROSS APPLY xmldata.nodes('/ns:Answer') R(ref)

ns: XML名前空間プレフィックスで “内のすべてを参照する必要があります。

4


タイトルとURLをコピーしました