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

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

Esta expressão deve ser avaliada como um VARCHAR. O VARCHAR deve conter um 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

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

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

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  |
+--------------------------------------------------+
Copy

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