我尝试从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 www.example.com中12.1.0.2我得到一个错误ORA-00936:missing expression有人知道这个版本的正确语法是什么吗?
2条答案
按热度按时间dkqlctbz1#
嵌套路径应该在12.1上工作,尝试用不带引号的grp替换
7gyucuyw2#
正如p3consulting发现的那样,在Oracle 12.1.0.2中,使用保留字作为列名似乎是一个问题,即使你把它放在引号里。