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

DB2中解析JSON字段时JSON_VALUE函数报错问题咨询

问题根因

  • DB2内置JSON解析器严格遵循RFC 8259标准,要求JSON对象的键名必须使用双引号包裹,你测试语句中使用的{a:100}属于非标准JSON格式,无法被正常解析
  • Oracle的JSON相关函数对非标准JSON做了额外兼容,因此同逻辑语句可以在Oracle侧正常执行,DB2侧会触发解析错误,触发你配置的ON ERROR分支返回Not Found,未配置默认值时就返回NULL

修复方法

将测试语句中的JSON字符串修改为标准格式,给键名添加双引号即可,修正后的SQL如下:

SELECT CURRENT TIMESTAMP AS CURRENT_TIMESTAMP,
       JSON_VALUE('{"a":100}', '$.a' DEFAULT 'Not found' ON ERROR) AS JSON_PARSE
FROM SYSIBM.SYSDUMMY1

执行修正后的语句,JSON_PARSE字段会正常返回数值100。
如果实际业务场景中获取到的JSON本身就是无引号键名的非标准格式,可以先通过REPLACE等字符串处理函数补全键名的双引号后,再调用JSON解析函数处理即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:15:11