【问题标题】:Getting issue while using JSON_TABLE in oracle在 oracle 中使用 JSON_TABLE 时遇到问题
【发布时间】:2020-02-21 11:40:19
【问题描述】:

我正在执行以下查询:

tbl_clob consist data  [{"ID":2,"FINACIAL_YEAR":"2020"}]. 
WITH JSON AS
(
    SELECT DATA 
    FROM tbl_clob  
    WHERE ldap_id = 'S'
    AND ROLE_ID = 3
    AND ROWNUM =1
)
SELECT ADJUSTMENT_ID,FINACIAL_YEAR
FROM JSON_TABLE
(
(SELECT DATA FROM JSON),'$[*]'
COLUMNS(
            ID     NUMBER     PATH '$.ID',
            FINACIAL_YEAR     VARCHAR2(50)      PATH '$.FINACIAL_YEAR'
)) jt; 

它给了我错误

ORA-00933:SQL 命令未正确结束

  1. 00000 - “SQL 命令未正确结束”

*原因:

*行动:

行错误:11 列:1

我也尝试了一些网上的例子

WITH json AS
    (SELECT '[{
        "id"     : "101",
        "name"   : "Peter Parker",
        "skills" : "web spinning, wall scaling"
             }]' data
    FROM DUAL)
  SELECT id
        , name
        , skills
  FROM json, JSON_TABLE(json.data, '$[*]'
      COLUMNS (
        id       NUMBER       PATH '$.id'
      , name     VARCHAR2(20) PATH '$.name'
      , skills   VARCHAR2(30) PATH '$.skills'
      ));

它给了我同样的错误。我需要在 Oracle 中安装什么东西来解决这个问题吗?

【问题讨论】:

  • 请使用格式化程序,并正确格式化您的问题
  • 欢迎来到 SO!我为你修复了格式...

标签: sql json oracle


【解决方案1】:

您使用的是什么版本的 ORACLE-DB?

第一个语句可以做一些小的改动:

WITH d_JSON AS
(
    SELECT '[{"ID":2,"FINACIAL_YEAR":"2020"}]'  my_DATA  
    from dual
)
SELECT ADJUSTMENT_ID,FINACIAL_YEAR
FROM d_JSON,JSON_TABLE
(my_DATA,'$[*]'
COLUMNS(
            ADJUSTMENT_ID     NUMBER     PATH '$.ID',
            FINACIAL_YEAR     VARCHAR2(50)      PATH '$.FINACIAL_YEAR'
)) jt; 

第二个是开箱即用。因此,您似乎使用的是 11.X 或更低版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 2011-10-11
    • 2017-09-24
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多