类别:

半结构化和结构化数据函数 (解析)

CHECK_XML

检查 XML 文档的有效性。如果输入字符串是 NULL 或有效的 XML 文档,则输出为 NULL。如果 XML 出现解析错误,输出字符串将包含错误消息。

另请参阅:

PARSE_XML

语法

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

实参

必填:

string_containing_xml . OR . STR => string_containing_xml

此表达式的计算结果应为 VARCHAR。VARCHAR 应包含有效的 XML。

可选:

disable_auto_convert . OR . DISABLE_AUTO_CONVERT => disable_auto_convert

指定传递给 PARSE_XML 函数的相同值。

默认:FALSE

返回

返回值的数据类型是 VARCHAR。

使用说明

  • 必须按名称或位置指定所有实参。不能按名称指定某些实参,也不能按位置指定其他实参。

    按名称指定实参时,不能在实参名称前后使用双引号。

示例

当 XML 有效时,显示函数的输出

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

当 XML 无效时,显示函数的输出

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

查找带有无效 XML 的记录

SELECT xml_str, CHECK_XML(xml_str)
    FROM my_table
    WHERE CHECK_XML(xml_str) IS NOT NULL;
Copy
语言: 中文