मारियाडीबी में, 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'