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
相关产品推荐
相关产品推荐

