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

Oracle中json_arrayagg返回值带\反斜杠转义符如何去除

Oracle json_arrayagg聚合结果多余转义符解决方法

问题原因

直接将CLOB类型的category字段传入json_arrayagg时,函数会默认把该字段值识别为普通字符串,而非原生JSON结构,因此会自动对字符串内的双引号添加反斜杠转义,最终输出带多余转义符的结果。

可行解决方案

不要直接传入原始CLOB字符串,先将字段内容显式声明为JSON类型后再传入聚合函数,函数就不会做多余转义:

  • 方法1:通用兼容写法(Oracle 12c R2及以上版本支持),使用TREAT将CLOB转换为JSON类型
select json_arrayagg(
  TREAT(category AS JSON)
  returning clob
) as category_result
from classInfo;
  • 方法2:使用json_query解析JSON片段后聚合(兼容性更广)
select json_arrayagg(
  json_query(category, '$' error on error)
  returning clob
) as category_result
from classInfo;

执行后正确输出

执行上述语句后会返回标准无转义的JSON数组:

[{"category":"AAA"},{"category":"BBB"}]

注意事项

  • 禁止使用replace暴力替换反斜杠的方式处理,一旦业务数据中本身包含合法的双引号、反斜杠字符,暴力替换会直接破坏JSON结构合法性,导致后续解析失败。
  • 所有处理逻辑的核心是让json_arrayagg识别到传入内容本身是JSON结构,而非普通文本,就不会触发字符串转义逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 13:24:29