我正在执行以下查询:
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命令未正确结束
- 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中安装某些软件来解决此问题吗?
您正在使用哪个版本的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或更低版本。