2011-01-05 17 views
18

में कनवर्ट करने के लिए डेटा प्रकार हैं जो डेल्फी 7 द्वारा समर्थित नहीं हैं, एक्सएमएल डेटाटाइप एक उदाहरण है।एमएस एसक्यूएल एक्सएमएल डेटा प्रकार एमएस एसक्यूएल में

मैं XML डेटाटाइप को टेक्स्ट डेटाटाइप में कनवर्ट करना चाहता हूं, ताकि मैं इसे डेल्फी में संभाल सकूं।

क्या XML से टेक्स्ट में कनवर्ट करने का कोई तरीका है?

उत्तर

33

एक साधारण डाली पर्याप्त होगा:

select cast(XMLCol as nvarchar(max)) as XMLCol 

या गैर यूनिकोड के लिए:

select cast(XMLCol as varchar(max)) as XMLCol 

आप एक 'पाठ' डेटा प्रकार के लिए स्पष्ट रूप से परिवर्तित नहीं कर सकते।

मैंने as XMLCol जोड़ा है ताकि यह सुनिश्चित किया जा सके कि परिवर्तित डेटा में कॉलम के समान नाम हो। आपको निश्चित रूप से यह नहीं चाहिए।

संपादित करें:

कुछ लिंक। आपको text की बजाय nvarchar (अधिकतम) का उपयोग करने के लिए प्रोत्साहित किया जाता है। माइक्रोसॉफ्ट ने कहा है कि वे भविष्य में रिलीज में इन प्रकारों को हटा देंगे। nvarchar (अधिकतम) चाहिए आप 2GB की पेशकश करने के:

http://www.petefreitag.com/item/734.cfm

http://www.teratrax.com/articles/varchar_max.html

http://msdn.microsoft.com/en-us/library/ms187752(v=SQL.90).aspx

+0

वर्कर के साथ समस्या एक्स बाइट्स की सीमा है, जो एक्सएमएल के मामले में नहीं है। – none

+2

एसक्यूएल का कौन सा संस्करण आप उपयोग कर रहे हैं। nvarchar (अधिकतम) आपको 2 जीबी तक की पेशकश करनी चाहिए। –

+0

त्वरित खोज के बाद, वर्कर (5000) और वर्कर (अधिकतम) – none

8
SELECT CAST(YourXMLColumn as nvarchar(max)) 
    FROM YourTable 
+0

यह है कि मैं क्या सामान्य रूप से करते है, यह गंदगी के लिए इतना, स्वच्छ याद रखने में आसान है, मुश्किल :) – Squazz

संबंधित मुद्दे