मैं कुछ एक्सएमएल डाटा एक एसक्यूएल सर्वर तालिका में एक XML स्तंभ में इस प्रकार है:डिफ़ॉल्ट नाम स्थान के साथ एसक्यूएल सर्वर XQuery
<AffordabilityResults>
<matchlevel xmlns="urn:callcredit.co.uk/soap:affordabilityapi2">IndividualMatch</matchlevel>
<searchdate xmlns="urn:callcredit.co.uk/soap:affordabilityapi2">2013-07-29T11:20:53</searchdate>
<searchid xmlns="urn:callcredit.co.uk/soap:affordabilityapi2">{E40603B5-B59C-4A6A-92AB-98DE83DB46E7}</searchid>
<calculatedgrossannual xmlns="urn:callcredit.co.uk/soap:affordabilityapi2">13503</calculatedgrossannual>
<debtstress xmlns="urn:callcredit.co.uk/soap:affordabilityapi2">
<incomedebtratio>
<totpaynetincome>0.02</totpaynetincome>
<totamtunsecured>0.53</totamtunsecured>
<totamtincsec>0.53</totamtincsec>
</incomedebtratio>
</debtstress>
</AffordabilityResults>
आप ध्यान दें जाएगा तत्वों में से कुछ एक xmlns विशेषता है कि और कुछ नहीं ...
मुझे डेटा वापस करने के लिए प्रश्न लिखने की आवश्यकता है - और अधिक महत्वपूर्ण बात यह है कि एक व्यवसाय विश्लेषक को अपने डेटा को प्राप्त करने के लिए अपने प्रश्नों को कैसे लिखना है, इसलिए मैं इसे जितना संभव हो उतना आसान बनाना चाहता हूं।
मैं आसानी के साथ XMLNAMESPACES तत्व का उपयोग इस प्रकार डेटा को क्वेरी कर सकते हैं:
WITH XMLNAMESPACES (N'urn:callcredit.co.uk/soap:affordabilityapi2' as x)
SELECT
ResponseXDoc.value('(/AffordabilityResults/x:matchlevel)[1]','varchar(max)') AS MatchLevel
, ResponseXDoc.value('(/AffordabilityResults/x:debtstress/x:incomedebtratio/x:totamtunsecured)[1]','nvarchar(max)') AS UnsecuredDebt
FROM [NewBusiness].[dbo].[t_TacResults]
लेकिन एक्स जोड़ने: क्वेरी के लिए हिस्सा यह बेहद जटिल लग रही है, और मैं इसे व्यवसाय के लिए आसान रखना चाहते हैं विश्लेषक।
मैं जोड़ने की कोशिश की:
WITH XMLNAMESPACES (DEFAULT 'urn:callcredit.co.uk/soap:affordabilityapi2')
और एक्स को हटाने: XQuery से - लेकिन इस अशक्त रिटर्न
है वहाँ किसी भी (संभवतः मूल तत्व पर xmlns की कमी की वजह?) जिस तरह से मैं इन प्रश्नों को डिफ़ॉल्ट नामस्थान के साथ या उसके बिना सरल बना सकता हूं?
ठीक है, समस्या यह है कि '' नामस्थान में नहीं है, इसलिए जब आप 'urn: callcredit.co.uk ...' डिफ़ॉल्ट रूप से नामस्थान में तत्व पूछते हैं, तो आप इसे चुनने में असमर्थ हैं। दुर्भाग्य से नो-नेमस्पेस के लिए उपसर्ग निर्दिष्ट करने का कोई तरीका नहीं है, इसलिए मुझे लगता है कि आपको नामांकित तत्वों पर उपसर्ग का उपयोग करना होगा। –
wst