雪花 XML 解析返回 NULL - 字段名称中的空格?
Posted
技术标签:
【中文标题】雪花 XML 解析返回 NULL - 字段名称中的空格?【英文标题】:snowflake XML Parsing returns NULL - SPACE in field name? 【发布时间】:2020-01-03 19:33:17 【问题描述】:我试图在下面的 xml 中获取 ap id 值,但返回 NULL。请帮忙。如果可能,请向我发送一个展平查询以展平雪花中的以下 xml 文件。我对雪花非常陌生,您的任何帮助将不胜感激。这是因为字段名称“ap id”中的空格吗?我不信。如何处理 XML 文件雪花中带空格的字段名?
选择 GET(lvl,'@ap id')::integer 作为 "ap id" from (SELECT src:"$" as lvl FROM XMLDATA);
SELECT XMLGET(SRC, 'ap id' ):"@" as "ap id" 来自 XML 数据;
选择 GET(src, '@ap id')::integer as ap_id 来自 XML 数据;
【问题讨论】:
【参考方案1】:你可以试试:
select src:"$"."@id" as app_id
from xmldata;
这是一种通过展平和搜索已知值来查找路径的方法:
with xmldata as (
select parse_xml('<amp_ap_detail><ap id="1610">asdf</ap></amp_ap_detail>') src
)
select path, value
from xmldata, lateral flatten(input=>xmldata.src, recursive=>true) f
where value = 1610;
在这种情况下产生:
PATH VALUE
['$']['@id'] 1610
将 PATH 映射到 Snowflake 的字段标识符表示法...
with xmldata as(
select parse_xml('<amp_ap_detail><ap id="1610">asdf</ap></amp_ap_detail>') src
)
select src:"$"."@id" as app_id
from xmldata;
希望对您有所帮助。
【讨论】:
以上是关于雪花 XML 解析返回 NULL - 字段名称中的空格?的主要内容,如果未能解决你的问题,请参考以下文章