提问人:Hanspeter 提问时间:8/30/2023 更新时间:8/31/2023 访问量:19
在 Oracle 12.1.0.2 中从 JSON 文件中选择嵌套信息的正确方法是什么?
What is the correct way to select nested information from a JSON file in Oracle 12.1.0.2?
问:
我尝试从 JSON 文件中获取信息,如以下 select 语句所述。这适用于 Oracle 19 和 Oracle 12.2.0.1
with xmldata as (
select '{
"metaData": {
"validForClearingDay": "2022-11-16",
"createdStamp": "2022-11-15T16:30:17.329433+01:00"
},
"entries": [
{
"group": "01",
"iid": 100,
"branchId": "0000",
"sicIid": "001008"
},
{
"group": "01",
"iid": 110,
"branchId": "0000",
"sicIid": "001100"
}
]
}' data from dual)
select y.* from xmldata x,
JSON_TABLE(x.data,
'$' COLUMNS(
validForClearingDay VARCHAR2(100) PATH '$.metaData.validForClearingDay',
NESTED PATH '$.entries[*]'
COLUMNS (
"group" VARCHAR2(100) PATH '$.group',
iid NUMBER(10) PATH '$.iid',
branchId VARCHAR2(100) PATH '$.branchId',
sicIid VARCHAR2(100) PATH '$.sicIid'
))) y
在 Oracle 12.1.0.2 中,我收到错误 ORA-00936:缺少表达式 有人知道该版本中的正确语法必须如何?
答:
0赞
Hanspeter
8/31/2023
#1
正如 p3consulting 所发现的那样,在 Oracle 12.1.0.2 中,使用保留字作为列名似乎是一个问题,即使将其放在引号中也是如此。
0赞
p3consulting
8/31/2023
#2
NESTED PATH 应该在 12.1 上工作,请尝试用不带引号的 grp 替换
下一个:PHP 数组用于每个串联对象
评论