从Snwoflake表的VARIANT列获取XML元素 [英] Getting xml Element from variant column of a Snwoflake table
本文介绍了从Snwoflake表的VARIANT列获取XML元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的样本数据
ID VERSION ACT_TYPE EVE_TYPE CLI_ID DETAILS OBJ_TYPE DATE_TIME AAPP_EVENT_TO_UTC_DT GRO_ID OBJECT_NAME OBJ_ID USER_NAME USER_ID EVENT_ID FINDINGS SUMMARY
6tgbcrq9pfhj1ezsdo82mcrzz o SCREENED_CASE WORLDCHECK o <?xml version="1.0" encoding="UTF-8" standalone="yes"?><testPayload><testId>565656-21cf-4c7e-8071-574a1ef78981</testId><testCode>COMPLETED</testCode><testState>TEST</testState><testResults>1</testResults><testRequiredResults>0</testRequiredResults><testExcludedResults>0</testExcludedResults><testAutoResolvedResults>1</testAutoResolvedResults><testproviderTypes>WATCHLIST</testproviderTypes></testPayload> CASE 9/16/2020 9:45 9/16/2020 9:45 erutrt7-d726-4672-8599-83d21927bec5 o 5786765dfgdfgdfg System User USER_SYSTEM o o <?xml version="1.0" encoding="UTF-8" standalone="yes"?><testCaseEventSummary><testTypes>WATCHLIST</testTypes><testResults>1</testResults></testCaseEventSummary>
我需要从此表中获取ID、testId。
请注意,testId位于XML的Detail列中。
我正在尝试类似下面的方法,但不起作用
select DETAILS:"$" from audit_event;
推荐答案
首先需要使用parse_xml将其转换为xml,然后使用xmlget函数获取如下所示的testId字段:
select xmlget(parse_xml(details), 'testId'):"$"::varchar from audit_event
我以为您希望它作为varchar
返回,所以我将::varchar
放在末尾来执行此操作。
这篇关于从Snwoflake表的VARIANT列获取XML元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文