【问题标题】:Get a property from a JSON which is stored in a clob column从存储在 clob 列中的 JSON 获取属性
【发布时间】:2022-01-02 21:18:12
【问题描述】:

我的表中有一个 clob 列,其中存储了 json 字符串。列中的数据如下所示:

{"date":"2021/11/11", "name":"test","errorCode":"00000","type":"test"}

我想编写一个选择查询来获取名称。 有什么建议吗?

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

    一个选项是使用JSON_TABLE,前提是您的数据库版本是12c+(12.1.0.2),例如

    SELECT jt.*
      FROM t,
           JSON_TABLE(jscol,
                      '$'                  
                      COLUMNS(
                               name  VARCHAR2(100) PATH '$.name',
                              "date" VARCHAR2(100) PATH '$.date' 
                              )
                      ) jt
    
    

    这样,您可以选择COLUMNS关键字之后列出的所有列

    Demo

    【讨论】:

      【解决方案2】:

      假设您使用的是 12c 或更高版本,您可以使用 json_value 提取值:

      select json_value ( 
               '{"date":"2021/11/11", "name":"test","errorCode":"00000","type":"test"}',
               '$.name'
             ) nm
      from   dual;
      
      NM     
      test   
      

      【讨论】:

        猜你喜欢
        • 2019-12-25
        • 2020-11-15
        • 1970-01-01
        • 2017-09-04
        • 2023-01-02
        • 2014-07-21
        • 2019-10-17
        • 1970-01-01
        • 2016-05-27
        相关资源
        最近更新 更多