No MariaDB,
UPDATEXML() é uma função interna que substitui uma única parte de um determinado fragmento de marcação XML por um novo fragmento XML e, em seguida, retorna o XML atualizado. Sintaxe
A sintaxe fica assim:
UPDATEXML(xml_target, xpath_expr, new_xml) Onde:
xml_targeté a marcação XML que contém o fragmento XML que você deseja atualizarxpath_expré o fragmento XML específico que você deseja atualizarnew_xmlé o fragmento XML que você deseja substituirxpath-exprcom
Exemplo
Segue um exemplo básico:
SELECT
UPDATEXML(
'<pet><name>Wag</name><type></type></pet>',
'/pet/type',
'<type>Dog</type>'
) AS Result; Resultado:
+---------------------------------------------+ | Result | +---------------------------------------------+ | <pet><name>Wag</name><type>Dog</type></pet> | +---------------------------------------------+
Neste exemplo, a marcação XML original tem um
<type> vazio elemento. Usamos UPDATEXML() para atualizar esse elemento, para que ele contenha conteúdo (Dog ). Argumentos nulos
Passando
null para qualquer argumento retorna 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; Resultado:
+------+------+------+------+ | a | b | c | d | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Argumentos ausentes
Chamando
UPDATEXML() com o número errado de argumentos ou sem passar nenhum argumento resulta em um erro:SELECT UPDATEXML(); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UPDATEXML'