Skip to content

JSON_LENGTH

功能描述

JSON对象的长度。

语法格式

JSON_LENGTH( json_doc[, path] )

参数说明

  • json_doc:JSON目标文档,JSON类型或JSON String类型。

  • path:路径表达式,字符类型。

说明:

  • 如果任何参数为NULL则返回NULL。
  • 标量长度为1。
  • 数组长度为元素数量。
  • 对象长度为对象成员数量。
  • 长度不计算嵌套数组或对象长度。
  • 以下情况将导致系统抛出错误:
    - json_doc是无效的JSON文档。
    - 任何path是无效的路径表达式。
    - 路径表达式中包含***通配符。

函数返回类型

JSON数值类型。

示例

值的长度

sql
SQL> SELECT TO_CHAR(JSON_LENGTH('1')),
    TO_CHAR(JSON_LENGTH('true')),
    TO_CHAR(JSON_LENGTH('false')),
    TO_CHAR(JSON_LENGTH('"abc"'));

EXPR1 | EXPR2 | EXPR3 | EXPR4 | 
------------------------------------------------------------------------------
1| 1| 1| 1|

数组的长度

sql
SQL> SELECT
        TO_CHAR(JSON_LENGTH('[]')),
        TO_CHAR(JSON_LENGTH('[1, 2]')),
        TO_CHAR(JSON_LENGTH('[1, {"x": 2}]'));

EXPR1 | EXPR2 | EXPR3 | 
------------------------------------------------------------------------------
0| 2| 2|

对象的长度

sql
SQL> SELECT
        TO_CHAR(JSON_LENGTH('{"x": 1, "y": 2}')),
        TO_CHAR(JSON_LENGTH('{"x": 1, "y": {"z" : 2}}'));

EXPR1 | EXPR2 | 
------------------------------------------------------------------------------
2| 2|

路径

sql
SQL> SELECT TO_CHAR(JSON_LENGTH('{"x": 1, "y": [1, 2]}', '$.y'));

EXPR1 | 
------------------------------------------------------------------------------
2|