Kategorien:

Funktionen für semistrukturierte und strukturierte Daten (Analyse)

CHECK_XML

Überprüft die Gültigkeit eines XML-Dokuments. Wenn die Eingabezeichenfolge NULL oder ein gültiges XML-Dokument ist, lautet die Ausgabe NULL. Bei einem XML-Analysefehler enthält die Ausgabezeichenfolge eine Fehlermeldung.

Siehe auch:

PARSE_XML, TO_XML, XMLGET

Syntax

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

Argumente

Erforderlich:

string_containing_xml . OR . STR => string_containing_xml

Geben Sie einen Ausdruck an, der zu einem VARCHAR-Wert ausgewertet wird, der eine gültige XML enthält.

Optional:

disable_auto_convert . OR . DISABLE_AUTO_CONVERT => disable_auto_convert

Geben Sie denselben Wert an, den Sie an die Funktion PARSE_XML übergeben.

Standard: FALSE

Rückgabewerte

Der Datentyp des zurückgegebenen Werts ist VARCHAR.

Nutzungshinweise

  • Wenn Sie Argumente nach Position und nach Namen kombinieren, müssen zuerst alle Positionsargumente und danach alle benannten Argumente angegeben werden.

  • Wenn Sie ein Argument über den Namen angeben, können Sie den Argumentnamen nicht in doppelten Anführungszeichen einschließen.

Beispiele

Die folgenden Beispiele verwenden die Funktion CHECK_XML.

Anzeigen der Ausgabe der Funktion, wenn XML gültig ist

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

Anzeigen der Ausgabe der Funktion, wenn XML ungültig ist

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

Suchen von Datensätzen mit ungültiger XML

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