You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 19c中统计CLOB类型JSON数组元素数量的最优方法

更优的JSON数组元素计数方法(Oracle 19c)

你当前用正则的方法虽然能得到结果,但存在不少局限性:比如数组元素间有空格/换行、或者嵌套JSON结构时,正则匹配会出错;而且处理大CLOB时,正则的效率远不如Oracle原生的JSON处理函数。

推荐以下两种更可靠高效的实现方式:

方法一:使用JSON_ARRAY_LENGTH函数(最直接)

Oracle 12cR2及以上版本(包括19c)提供了专门的JSON_ARRAY_LENGTH函数,直接获取JSON数组的元素个数,完全适配合法JSON格式的各种写法:

-- 如果列已被标记为JSON类型(带IS JSON约束)
SELECT JSON_ARRAY_LENGTH(c1) AS array_count FROM t1;

-- 如果列未标记JSON类型,显式指定格式
SELECT JSON_ARRAY_LENGTH(c1 FORMAT JSON) AS array_count FROM t1;

方法二:通过JSON_TABLE展开后计数

如果需要同时验证JSON合法性,或者后续要对数组元素做其他操作,可以用JSON_TABLE展开数组后统计行数:

SELECT COUNT(*) AS array_count
FROM t1,
     JSON_TABLE(c1 FORMAT JSON, '$[*]' COLUMNS (dummy PATH '$')) jt;

这两种方法的优势:

  • 原生JSON函数是Oracle针对JSON数据优化过的,处理速度比正则快很多
  • 能正确解析所有符合标准的JSON格式,不会因为空格、换行、嵌套结构等细节导致计数错误
  • 具备JSON格式校验能力,若CLOB内容不是合法JSON,会返回明确的错误提示(而非错误的计数结果)

内容的提问来源于stack exchange,提问作者Vinoth Karthick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 10:30:51