在oracledb中查询json数据时面临的sql问题

1bqhqjot  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(368)

我已经用约束创建了一个表来检查是json;
结构:

  1. CREATE TABLE d_jobs (
  2. ID varchar2(500),
  3. jobs varchar2(4000)
  4. constraint ensure_json1 check (jobs is JSON)
  5. );

以及 jobs 列将包含以下值: [{"jobid":"x","status":"done"},{"jobid":"y","status":"done"}] 当我询问时:

  1. select j.jobs.status from d_jobs j;

输出为: ["done","done"] 但我想要输出: ["done"] --根据列表位置
我试图询问:

  1. select j.jobs[0] from d_jobs j; -- not sure if the given syntax is correct
  1. Error: ORA-00923: FROM keyword not found where expected
  2. 00923. 00000 - "FROM keyword not found where expected"
  3. * Cause:
  4. * Action:
  5. Error at Line: 107 Column: 22

有人能帮忙吗?谢谢您!!

gxwragnw

gxwragnw1#

这就是你想要的吗?

  1. select json_value(jobs, '$[0].status') status0 from d_jobs;

这将为您提供 status 属性,即:

  1. | STATUS0 |
  2. | :------ |
  3. | done |

相关问题