本文介绍了如何使用Oracle 12c获取存储为CLOB的JSON数组中的元素数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我将Java类A作为A_DOC存储在数据库的clob列中.
I'm storing a java class A as A_DOC in a clob column in my database.
A的结构如下:
{
id : 123
var1: abc
subvalues : [{
id: 1
value : a
},
{
id: 1
value :b
}
...
}
]}
我知道我可以做类似的事情
I know I can do things like
select json_query(a.A_DOC, '$.subvalues.value') from table_name a;
,依此类推,但是我正在寻找一种通过sql查询计数subvalues数组中元素数量的方法.这可能吗?
and so on, but how I'm looking for a way to count the number of elements in the subvalues array through an sql query. Is this possible?
推荐答案
您可以使用JSON_TABLE:
You can use JSON_TABLE:
SELECT
id, var1, count(sub_id) subvalues
FROM
JSON_TABLE (
to_clob('{ id: 123, var1: "abc", subvalues : [{ id: 1, value: "a", }, { id: 2, value: "b" } ]}'),
'$'
COLUMNS (
id NUMBER PATH '$.id',
var1 VARCHAR PATH '$.var1',
NESTED PATH '$.subvalues[*]'
COLUMNS (
sub_id NUMBER PATH '$.id'
)
)
)
GROUP BY id, var1
这篇关于如何使用Oracle 12c获取存储为CLOB的JSON数组中的元素数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!