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

Oracle中JSON_ARRAYAGG返回结果截断,如何获取完整数据?

解决Oracle JSON输出截断问题

方法一:调整SQL Developer显示设置

SQL Developer默认会限制CLOB类型字段的显示长度,导致大JSON结果被截断。按以下步骤修改:

  • 打开SQL Developer,点击顶部菜单「工具」→「首选项」
  • 在左侧导航栏选择「数据库」→「高级」
  • 在右侧找到「SQL查询结果」区域,修改「CLOB值的最大字符数」为更大的值(例如100000或更大)
  • 保存设置后重启SQL Developer,重新执行查询即可看到完整结果

方法二:使用SPOOL命令导出结果到文件

如果调整设置后仍有问题,或需要直接保存完整JSON,可以用SPOOL命令将结果导出到本地文件:

-- 设置输出参数,适配大内容输出
SET LINESIZE 32767
SET LONG 32767
SET LONGCHUNKSIZE 32767

-- 指定本地输出文件路径(可自行修改)
SPOOL D:\full_json_result.txt

-- 执行查询(可去掉`distinct`,因c1为唯一值,重复判断无意义)
SELECT JSON_ARRAYAGG(
           JSON_OBJECT(
                   'id' VALUE c1,
                   'value' VALUE c2,
                   'description' VALUE c3) RETURNING CLOB)
  FROM test;

-- 停止导出
SPOOL OFF

方法三:验证JSON完整性

可以先查询生成的CLOB长度,确认数据库端已生成完整数据:

SELECT DBMS_LOB.GETLENGTH(
           JSON_ARRAYAGG(
               JSON_OBJECT(
                       'id' VALUE c1,
                       'value' VALUE c2,
                       'description' VALUE c3) RETURNING CLOB)
       ) AS json_total_length
  FROM test;

如果返回的长度远大于当前显示的字符数,说明是客户端显示限制问题,用前两种方法即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 17:56:08