JSON_CONTAINS
功能描述
搜索json_doc
是否存在于json_doc_target
中,当path
存在时,则判断是否存在于指定的路径下。
语法格式
JSON_CONTAINS( json_doc_target, json_doc[, path] )
参数说明
json_doc_target
:JSON目标文档,JSON类型或JSON String类型。json_doc
:JSON比对文本,JSON类型或JSON String类型。path
:(可选)JSON路径表达式,字符类型。
说明:
- 如果任何参数为NULL则返回NULL。
- 当对比值为数组时,数组元素都包含在目标文档的某个元素中时,返回1。
- 当对比值为非数组时,非数组值包含在目标文档中时,返回1。
- 当对比值为对象时,对象的键值对在目标中存在有相同的键名和值,返回1。
函数返回类型
INTEGER数值类型。
示例
不指定路径
sql
SQL> SELECT
TO_CHAR(JSON_CONTAINS('[1, 2, {"x": 3}]', '1')),
TO_CHAR(JSON_CONTAINS('[1, 2, {"x": 3}]', '{"x": 3}')),
TO_CHAR(JSON_CONTAINS('[1, 2, {"x": 3}]', '3'));
EXPR1 | EXPR2 | EXPR3 |
------------------------------------------------------------------------------
1| 1| 0|
指定路径
sql
SQL> SELECT
TO_CHAR(JSON_CONTAINS('[1, 2, [3, 4]]', '2', '$[2]')),
TO_CHAR(JSON_CONTAINS('[1, 2, [3, 4]]', '2', '$[1]'));
EXPR1 | EXPR2 |
------------------------------------------------------------------------------
0| 1|