Sql JSON值中的Oracle搜索数组?
我将以下内容作为JSON存储在Oracle数据库中:Sql JSON值中的Oracle搜索数组?,sql,oracle,oracle12c,Sql,Oracle,Oracle12c,我将以下内容作为JSON存储在Oracle数据库中: { value: [1,2,3] } 该值可以是任何类型(字符串、整数或数组)。如何查询类型是否为数组以及是否包含某个值 在伪代码中: 从列_NAME.value包含2的表中选择* 我可以看到如何使用Oracle函数(如json\u query)查询字符串,但无法看到如何在不选择所有数据并在客户端上搜索的情况下运行此特定类型的查询。您可以在FROM中的json\u表中使用,定义列,然后在where子句中使用它来筛选行 --Test d
{
value: [1,2,3]
}
该值可以是任何类型(字符串、整数或数组)。如何查询类型是否为数组以及是否包含某个值
在伪代码中:
从列_NAME.value包含2的表中选择*
我可以看到如何使用Oracle函数(如
json\u query
)查询字符串,但无法看到如何在不选择所有数据并在客户端上搜索的情况下运行此特定类型的查询。您可以在FROM
中的json\u表中使用,定义列,然后在where
子句中使用它来筛选行
--Test data
with t (id,j)
as
( select 1, TO_CLOB(
'{
value : [1,2,3]
}') FROM DUAL
)
--Test data ends--
select t.id,tbl.val FROM t cross join
json_table(j,'$.value[*]' columns (val varchar2(100) path '$') ) as tbl
where tbl.val = 2
ID VAL
------ -------
1 2
有趣的是,当我将tbl.val与绑定(:val)组合时,DB会重置我的连接并抛出一个一般错误。还有其他人经历过吗?不过,如果我使用文字,它就可以工作。