Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql JSON值中的Oracle搜索数组?_Sql_Oracle_Oracle12c - Fatal编程技术网

Sql 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

我将以下内容作为JSON存储在Oracle数据库中:

{
   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会重置我的连接并抛出一个一般错误。还有其他人经历过吗?不过,如果我使用文字,它就可以工作。