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> ] )
Copy
CHECK_XML( STR => <string_containing_xml>
  [ , DISABLE_AUTO_CONVERT => <disable_auto_convert> ] )
Copy

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

  • Você deve especificar todos os argumentos por nome ou por posição. Você não pode especificar alguns dos argumentos por nome e outros argumentos por posição.

    Ao especificar um argumento por nome, você 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>');
Copy
+-----------------------------------+
| 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>');
Copy
+--------------------------------------------------+
| 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;
Copy