V MariaDB, UPDATEXML()
je vestavěná funkce, která nahradí jednu část daného fragmentu značky XML novým fragmentem XML a poté vrátí aktualizované XML.
Syntaxe
Syntaxe vypadá takto:
UPDATEXML(xml_target, xpath_expr, new_xml)
Kde:
xml_target
je označení XML, které obsahuje fragment XML, který chcete aktualizovatxpath_expr
je konkrétní fragment XML, který chcete aktualizovatnew_xml
je fragment XML, který chcete nahraditxpath-expr
s
Příklad
Zde je základní příklad:
SELECT
UPDATEXML(
'<pet><name>Wag</name><type></type></pet>',
'/pet/type',
'<type>Dog</type>'
) AS Result;
Výsledek:
+---------------------------------------------+ | Result | +---------------------------------------------+ | <pet><name>Wag</name><type>Dog</type></pet> | +---------------------------------------------+
V tomto příkladu má původní označení XML prázdné <type>
živel. Použili jsme UPDATEXML()
aktualizovat tento prvek tak, aby obsahoval obsah (Dog
).
Nulové argumenty
Předávání null
pro jakýkoli argument vrátí null
:
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;
Výsledek:
+------+------+------+------+ | a | b | c | d | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Chybí argumenty
Volání UPDATEXML()
s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT UPDATEXML();
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UPDATEXML'