如何忽略雪花中 parse_xml 损坏的 xml 行
How to ignore corrupted xml row with parse_xml in snowflake
函数 parse_xml 失败并显示消息 解析错误 XML:不是 XML 元素,pos 1,这是由于一个无效xml条目,有没有忽略无效的继续进行的。
这是背景
我通过存储为 varchar 的休息服务将 xml 数据存储到雪花 table 中,进一步选择此数据,解析为 xml 并执行 filtering/processing。函数 parse_xml 在我们的例子中运行良好,但如果任何一个条目无效,它就会放弃。
下面是一个示例查询,我希望忽略“red”和 return“green”而不是抛出错误。
SELECT parse_xml(XML)
FROM
(SELECT ('<color>green</color>') XML
UNION SELECT ('red') XML);
用check_xml()
检查XML的有效性:
SELECT parse_xml(XML)
FROM
(SELECT ('<color>green</color>') XML
UNION SELECT ('red') XML)
WHERE check_xml(XML) is NULL ;
这个returns<color>green</color>
,随心所欲。
函数 parse_xml 失败并显示消息 解析错误 XML:不是 XML 元素,pos 1,这是由于一个无效xml条目,有没有忽略无效的继续进行的。
这是背景 我通过存储为 varchar 的休息服务将 xml 数据存储到雪花 table 中,进一步选择此数据,解析为 xml 并执行 filtering/processing。函数 parse_xml 在我们的例子中运行良好,但如果任何一个条目无效,它就会放弃。
下面是一个示例查询,我希望忽略“red”和 return“green”而不是抛出错误。
SELECT parse_xml(XML)
FROM
(SELECT ('<color>green</color>') XML
UNION SELECT ('red') XML);
用check_xml()
检查XML的有效性:
SELECT parse_xml(XML)
FROM
(SELECT ('<color>green</color>') XML
UNION SELECT ('red') XML)
WHERE check_xml(XML) is NULL ;
这个returns<color>green</color>
,随心所欲。