Categorias:

Funções de dados semiestruturados e estruturados (Análise)

CHECK_XML

Verifica a validade de um documento XML. Se a cadeia de caracteres de entrada for NULL ou um documento XML válido, a saída será NULL. No caso de um erro de análise do XML, a cadeia de caracteres de saída contém a mensagem de erro.

Consulte também:

PARSE_XML, TO_XML, XMLGET

Sintaxe

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

Argumentos

Obrigatório:

string_containing_xml . OR . STR => string_containing_xml

Especifique uma expressão que seja avaliada como um valor VARCHAR que contenha XML válido.

Opcional:

disable_auto_convert . OR . DISABLE_AUTO_CONVERT => disable_auto_convert

Especifique o mesmo valor que você passa para a função PARSE_XML.

Padrão: FALSE

Retornos

O tipo de dados do valor retornado é VARCHAR.

Notas de uso

  • Quando você mistura argumentos por posição e por nome, todos os argumentos posicionais devem vir antes de todos os argumentos nomeados.

  • Quando você especifica um argumento por nome, não pode usar aspas duplas no nome do argumento.

Exemplos

Os exemplos a seguir usam a função CHECK_XML.

Mostrar a saída da função quando o XML é válido

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

Mostrar a saída da função quando o XML é inválido

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

Localizar registros com XML inválidos

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