Catégories :

Fonctions de données semi-structurées et structurées (Parsing)

CHECK_XML

Vérifie la validité d’un document XML. Si la chaîne d’entrée est NULL ou un document XML valide, le résultat est NULL. En cas d’erreur d’analyse XML, la chaîne de sortie contient le message d’erreur.

Voir aussi :

PARSE_XML, TO_XML, XMLGET

Syntaxe

CHECK_XML( <string_containing_xml> [ , <disable_auto_convert> ] )
Copy
CHECK_XML( STR => <string_containing_xml>
  [ , DISABLE_AUTO_CONVERT => <disable_auto_convert> ] )
Copy

Arguments

Obligatoire :

string_containing_xml . OR . STR => string_containing_xml

Spécifiez une expression qui est évaluée sur une valeur VARCHAR qui contient des XML valides.

Facultatif :

disable_auto_convert . OR . DISABLE_AUTO_CONVERT => disable_auto_convert

Spécifiez la même valeur que celle que vous passez à la fonction PARSE_XML.

Par défaut : FALSE

Renvoie

Le type de données de la valeur renvoyée est VARCHAR.

Notes sur l’utilisation

  • Vous devez spécifier tous les arguments soit par leur nom, soit par leur position. Vous ne pouvez pas spécifier certains arguments par leur nom et d’autres par leur position.

    Lorsque vous spécifiez un argument par son nom, vous ne pouvez pas utiliser de guillemets doubles autour du nom de l’argument.

Exemples

Les exemples suivants utilisent la fonction CHECK_XML.

Afficher la sortie de la fonction lorsque le XML est valide

SELECT CHECK_XML('<name> Valid </name>');
Copy
+-----------------------------------+
| CHECK_XML('<NAME> VALID </NAME>') |
|-----------------------------------|
| NULL                              |
+-----------------------------------+

Afficher la sortie de la fonction lorsque le XML n’est pas valide

SELECT CHECK_XML('<name> Invalid </WRONG_CLOSING_TAG>');
Copy
+--------------------------------------------------+
| CHECK_XML('<NAME> INVALID </WRONG_CLOSING_TAG>') |
|--------------------------------------------------|
| no opening tag for </WRONG_CLOSING_TAG>, pos 35  |
+--------------------------------------------------+

Localiser les enregistrements pour lesquels le XML n’est pas valide

SELECT xml_str, CHECK_XML(xml_str)
  FROM my_table
  WHERE CHECK_XML(xml_str) IS NOT NULL;
Copy