मारियाडीबी में, UPDATEXML()
एक अंतर्निहित फ़ंक्शन है जो एक्सएमएल मार्कअप के दिए गए टुकड़े के एक हिस्से को एक नए एक्सएमएल टुकड़े के साथ बदल देता है, फिर अपडेट किया गया एक्सएमएल देता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
UPDATEXML(xml_target, xpath_expr, new_xml)
कहां:
xml_target
एक्सएमएल मार्कअप है जिसमें एक्सएमएल खंड है जिसे आप अपडेट करना चाहते हैंxpath_expr
विशिष्ट XML खंड है जिसे आप अपडेट करना चाहते हैंnew_xml
एक्सएमएल खंड है जिसे आप बदलना चाहते हैंxpath-expr
के साथ
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT
UPDATEXML(
'<pet><name>Wag</name><type></type></pet>',
'/pet/type',
'<type>Dog</type>'
) AS Result;
परिणाम:
+---------------------------------------------+ | Result | +---------------------------------------------+ | <pet><name>Wag</name><type>Dog</type></pet> | +---------------------------------------------+
इस उदाहरण में, मूल XML मार्कअप में एक खाली <type>
. है तत्व। हमने UPDATEXML()
. का इस्तेमाल किया उस तत्व को अपडेट करने के लिए, ताकि उसमें सामग्री हो (Dog
)।
अशक्त तर्क
पासिंग null
किसी भी तर्क के लिए null
returns लौटाता है :
SELECT
UPDATEXML('<pet></pet>', '/pet', null) AS a,
UPDATEXML(null, '/pet', '<friend></friend>') AS b,
UPDATEXML('<pet></pet>', null, '<friend></friend>') AS c,
UPDATEXML(null, null, null) AS d;
परिणाम:
+------+------+------+------+ | a | b | c | d | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
अनुपलब्ध तर्क
कॉलिंग UPDATEXML()
तर्कों की गलत संख्या के साथ, या बिना कोई तर्क पारित किए त्रुटि उत्पन्न होती है:
SELECT UPDATEXML();
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UPDATEXML'