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

Oracle JSON_OBJECT缺失右括号报错,非最后键如何用ABSENT ON NULL

问题解决:Oracle JSON_OBJECT非最后一个键使用ABSENT ON NULL的语法修正

错误原因

你的SQL报错是因为给第一个键值对额外添加了括号,这违反了JSON_OBJECT的语法规则,和是否是最后一个键使用ABSENT ON NULL无关。

修正方案

去掉多余的括号,每个键值对都可以独立指定ABSENT ON NULL,不管它在列表中的位置。

修正后的SQL代码

SELECT JSON_OBJECT(
     KEY 'employee_name' VALUE e.ename ABSENT ON NULL,
     KEY 'commission' VALUE e.comm
     -- 这里也可以按需添加ABSENT ON NULL
   ) AS employees
FROM   emp e
WHERE  e.deptno = 10;

补充说明

如果需要给多个键值对都启用ABSENT ON NULL,可以直接在每个键值对后添加该子句,示例:

SELECT JSON_OBJECT(
     KEY 'employee_name' VALUE e.ename ABSENT ON NULL,
     KEY 'commission' VALUE e.comm ABSENT ON NULL,
     KEY 'job' VALUE e.job ABSENT ON NULL
   ) AS employees
FROM   emp e
WHERE  e.deptno = 10;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:02:36