函数parse_xml失败,并显示消息解析XML错误:不是XML元素,位置1 ,这是由于一个无效的xml条目引起的,还是可以忽略该无效的xml条目并继续。
这是背景 我通过其余服务将xml数据存储到雪花表中,该服务存储为varchar,进一步选择此数据,解析为xml并进行过滤/处理。函数parse_xml在我们的情况下效果很好,但是如果任何一项无效,它就会放弃。
这是下面的示例查询,我希望忽略“红色”并返回“绿色”,而不是抛出错误。
SELECT parse_xml(XML)
FROM
(SELECT ('<color>green</color>') XML
UNION SELECT ('red') XML);
答案 0 :(得分:1)
使用check_xml()
检查XML的有效性:
SELECT parse_xml(XML)
FROM
(SELECT ('<color>green</color>') XML
UNION SELECT ('red') XML)
WHERE check_xml(XML) is NULL ;
这将根据需要返回<color>green</color>
。