Wie wiederhole ich die Knoten eines XML-Feldes in T-SQL?

8

Ich habe ein XML-Feld, von dem ich weiß, dass es mindestens einen "ChildNode" enthalten wird, aber möglicherweise mehr. Ich versuche, eine Schleife in T-SQL zu machen, die das XML jedes ChildNode als VarChar (1000) erhält und einige Logik damit macht. Wenn ich folgendes versuche ...

%Vor%

Ich erhalte den folgenden Fehler: Das Argument 1 der XML-Datentypmethode "value" muss ein Zeichenfolgenliteral sein.

Ich weiß, dass es explodiert, wenn ich versuche, den @intIterator in der value-Methode zu verwenden, da es ein String-Literal anstelle einer Variablen verlangt, aber wie kann ich dann in T-SQL nacheinander die untergeordneten Knoten durchlaufen?

    
N0Alias 15.02.2011, 16:14
quelle

2 Antworten

14

Ich habe keine Ahnung, wie Ihr XML aussieht, aber Sie müssen wahrscheinlich einen anderen Ansatz verwenden - versuchen Sie nicht, iterieren und loopen und so etwas zu verwenden - verwenden Sie stattdessen die Funktion .nodes() in XQuery:

%Vor%

Das lässt das iterating / looping zu XQuery im Grunde und Sie müssen nicht mit Indexen oder etwas ähnlichem herumgehen .....

    
marc_s 15.02.2011, 16:20
quelle
5

Es könnte immer noch notwendig sein, Unterelemente abzufragen, die die Antwort auf diese Frage nicht lösen würde. Sie können einfach die Variable sql: verwenden, um die Bedingung nodes () eines String-Literalarguments zu erfüllen, um Unterelemente eines bestimmten Knotens iterativ abzufragen.

%Vor%     
frimley 23.09.2011 13:41
quelle

Tags und Links