在Oracle中从JSON文件中选择嵌套信息的正确方法是什么12.1.0.2?

aiqt4smr  于 2023-10-16  发布在  Oracle
关注(0)|答案(2)|浏览(113)

我尝试从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有人知道这个版本的正确语法是什么吗?

dkqlctbz

dkqlctbz1#

嵌套路径应该在12.1上工作,尝试用不带引号的grp替换

7gyucuyw

7gyucuyw2#

正如p3consulting发现的那样,在Oracle 12.1.0.2中,使用保留字作为列名似乎是一个问题,即使你把它放在引号里。

相关问题