【发布时间】:2022-01-02 21:18:12
【问题描述】:
我的表中有一个 clob 列,其中存储了 json 字符串。列中的数据如下所示:
{"date":"2021/11/11", "name":"test","errorCode":"00000","type":"test"}
我想编写一个选择查询来获取名称。 有什么建议吗?
【问题讨论】:
我的表中有一个 clob 列,其中存储了 json 字符串。列中的数据如下所示:
{"date":"2021/11/11", "name":"test","errorCode":"00000","type":"test"}
我想编写一个选择查询来获取名称。 有什么建议吗?
【问题讨论】:
一个选项是使用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关键字之后列出的所有列
【讨论】:
假设您使用的是 12c 或更高版本,您可以使用 json_value 提取值:
select json_value (
'{"date":"2021/11/11", "name":"test","errorCode":"00000","type":"test"}',
'$.name'
) nm
from dual;
NM
test
【讨论】: