Dans MariaDB, UPDATEXML()
est une fonction intégrée qui remplace une seule partie d'un fragment donné de balisage XML par un nouveau fragment XML, puis renvoie le XML mis à jour.
Syntaxe
La syntaxe ressemble à ceci :
UPDATEXML(xml_target, xpath_expr, new_xml)
Où :
xml_target
est le balisage XML qui contient le fragment XML que vous souhaitez mettre à jourxpath_expr
est le fragment XML spécifique que vous souhaitez mettre à journew_xml
est le fragment XML que vous souhaitez remplacerxpath-expr
avec
Exemple
Voici un exemple de base :
SELECT
UPDATEXML(
'<pet><name>Wag</name><type></type></pet>',
'/pet/type',
'<type>Dog</type>'
) AS Result;
Résultat :
+---------------------------------------------+ | Result | +---------------------------------------------+ | <pet><name>Wag</name><type>Dog</type></pet> | +---------------------------------------------+
Dans cet exemple, le balisage XML d'origine a un <type>
vide élément. Nous avons utilisé UPDATEXML()
pour mettre à jour cet élément, afin qu'il contienne du contenu (Dog
).
Arguments nuls
Passer null
pour tout argument renvoie 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;
Résultat :
+------+------+------+------+ | a | b | c | d | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Arguments manquants
Appel de UPDATEXML()
avec le mauvais nombre d'arguments, ou sans passage d'arguments, une erreur se produit :
SELECT UPDATEXML();
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UPDATEXML'