1

函数 parse_xml 失败并显示消息Error parsing XML: not an XML element, pos 1,这是由于一个无效的 xml 条目,无论如何忽略无效的条目并继续。

这是一个背景,我通过一个存储为 varchar 的 rest 服务将 xml 数据放入雪花表中,进一步挑选这些数据,解析成 xml 并进行过滤/处理。函数 parse_xml 在我们的例子中运行良好,但如果任何一个条目无效,它就会放弃。

这是下面的示例查询,我希望忽略“红色”并返回“绿色”而不是抛出错误。

SELECT parse_xml(XML)
FROM
  (SELECT ('<color>green</color>') XML
   UNION SELECT ('red') XML);
4

1 回答 1

1

检查 XML 的有效性check_xml()

SELECT parse_xml(XML)
FROM
  (SELECT ('<color>green</color>') XML
   UNION SELECT ('red') XML)
WHERE check_xml(XML) is NULL ;

这将<color>green</color>根据需要返回 。

于 2020-11-10T07:27:05.700 回答