Excuses si cela est répondu ailleurs. Je continue à recevoir le message d'erreur XQuery [Mytable.XMLData.nodes()]: Il n'y a pas d'élément nommé 'réponse'Comment obtenir SQL Server XQUERY pour renvoyer autre chose que "Il n'y a aucun élément nommé [Element]"
SELECT
ref.value('/','nvarchar(1000)')
FROM Mytable CROSS APPLY xmldata.nodes('Answer') R(ref)
-
--XML of Row
<Answer xmlns="http://TempNameSpace.com/AnswerData.xsd" Type="Deliverable">
<Deliverable>
<Title>test</Title>
<Description>test</Description>
<DueDate>2010-02-16T08:59:59</DueDate>
</Deliverable>
</Answer>
J'ai essayé plusieurs variations différentes sur l'obtention le nœud racine (« réponse »), ou l'un des nœuds enfants si, mais je changer ma déclaration pour lire
SELECT
ref.value('/','nvarchar(1000)')
FROM Mytable CROSS APPLY xmldata.nodes('/') R(ref)
i obtenir le résultat testtest2010-02-16T08: 59: 59
je voudrais en fin de compte comme ces données sous forme de tableau, quelque chose comme
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)
Merci pour votre aide
Peut-être d'intérêt: http://stackoverflow.com/questions/1302064/sql-server-2005-xml-query-works-value-requires-singleton-found-xdtuntype –
oui cela aide un peu. Semble quand je supprime la déclaration d'espace de noms sur le nœud racine, je peux maintenant trouver mes éléments. Cependant, aucun de mes éléments n'a de préfixe d'espace de noms explicite (par exemple, blah ) Devrait-il? Je suppose que je peux simplement supprimer cette ligne xmlns = "http://TempNameSpace.com/AnswerData.xsd" de mon xml, mais je prévoyais d'utiliser cela pour valider le xml Merci –
Beta033
OOPS !!! @Myself: Faites plutôt attention à la partie (/) [1]. qui aide – Beta033