我有一个表,我们称之为Table_One
。在Table_One
中,我有一个名为LOG_TX
的列,它存储为CLOB
数据类型。我不确定这是否重要,但在DDL中,它也被用作store as SECUREFILE
。
在LOG_TX
中,我的数据看起来像这样(在文本编辑器中解析出来以便于阅读):
{
"EventInfo":
{
"PayloadVers":"1.0.0",
"ApplicationMnu":"Testing"
}
}
我想写一个SQL查询,它会产生以下输出:
PayloadVers ApplicationMnu
1.0.0 Testing
我试过使用JSON_TABLE
函数。
下面是我到目前为止使用过的查询,但它只产生NULL
值:
select
jt.Payload_Version
from
Table_One a,
JSON_TABLE(a.LOG_TX, '$.EventInfo.PayloadVers'
COLUMNS (Payload_Version varchar(255) format JSON PATH '$.EventInfo.PayloadVers')) as jt
我做错了什么?请注意,我不想尝试所有列,直到我至少可以让第一个先给予我一些东西。
1条答案
按热度按时间rqenqsqc1#
您需要始终使用父节点来获取子节点
正如您在工作查询中看到的,为了获取Payload_Version,我们在JSON_tABLE中使用
'$.EventInfo'
,它是Payload_Version的父节点fiddle