मेरे पास एक एक्सएमएल फ़ील्ड है जो मुझे पता है कि इसमें कम से कम एक "चाइल्ड नोड" होगा, लेकिन संभवतः अधिक। मैं टी-एसक्यूएल में एक लूप बनाने की कोशिश कर रहा हूं जो प्रत्येक चाइल्ड नोड का एक्सएमएल वर्कर (1000) के रूप में प्राप्त करेगा और इसके साथ कुछ तर्क करेगा। जब मैं निम्नलिखित ...मैं टी-एसक्यूएल में एक्सएमएल फ़ील्ड के नोड्स के माध्यम से कैसे पुन: प्रयास करूं?
...
SET @intIterator=1
SET @strValue = (SELECT XMLField.value('(/RootNode/ParentNode/ChildNode)[' + CAST(@intIterator AS VARCHAR(2)) + ']', VARCHAR(1000)) WHERE [email protected])
WHILE LEN(@strValue) > 0
BEGIN
--LOGIC with @strValue not shown.
@intIterator = @intIterator + 1
@strValue = (SELECT XMLField.value('(/RootNode/ParentNode/ChildNode)[' + CAST(@intIterator AS VARCHAR(2)) + ']', VARCHAR(1000)) WHERE [email protected])
END
कोशिश मैं निम्नलिखित त्रुटि मिलती है: XML डेटा प्रकार विधि "मूल्य" का तर्क 1 एक स्ट्रिंग शाब्दिक होना आवश्यक है।
मुझे पता है कि जब मैं @intIterator को वैल्यू विधि में उपयोग करने का प्रयास करता हूं तो यह उड़ा रहा है क्योंकि यह एक चर के बजाय स्ट्रिंग अक्षर चाहता है, लेकिन फिर मैं टी-एसक्यूएल में एक-एक करके बच्चे नोड्स के माध्यम से कैसे पुन: प्रयास कर सकता हूं ?
काफी सही। आप एक रिलेशनल डेटाबेस में हैं। सेट-आधारित तर्क सोचें, लूपिंग और प्रक्रियात्मक तर्क नहीं। –
क्षमा करें @marc_s, क्या आप अपनी पोस्ट संपादित कर सकते हैं। 'वर्चर (50)' में एक अतिरिक्त कॉमा है), '। मैं संपादित नहीं कर सकता क्योंकि यह केवल 1 प्रतीक है। – new2ios
@ new2ios: किया - इसे इंगित करने के लिए धन्यवाद –