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

Oracle 19.2.1.247从CLOB字段提取JSON的Message-ID报错求助

解决Oracle 19c提取带连字符JSON键值的语法错误问题

错误原因

  1. JSON路径解析逻辑问题:JSON键名Message-ID包含连字符,Oracle的JSON路径解析器会把$.Message-ID误判为$.Message减去ID的表达式,直接触发JZN-00209语法错误。
  2. 字段引用错误:原SQL中JSON_VALUE的第一个参数写了'{header_info}',这是固定字符串,不是引用表中的CLOB类型字段header_info。

正确SQL写法

有两种合法方式可以解析带特殊字符的JSON键:

方式1:用双引号包裹键名

SELECT JSON_VALUE(header_info, '$."Message-ID"') AS message_id
FROM epres.mydata;

方式2:使用方括号语法

SELECT JSON_VALUE(header_info, '$["Message-ID"]') AS message_id
FROM epres.mydata;

额外优化(可选)

如果header_info字段可能存在非JSON格式的数据,可以添加异常处理子句控制结果:

-- 非法JSON时返回NULL
SELECT JSON_VALUE(header_info, '$."Message-ID"' NULL ON ERROR) AS message_id
FROM epres.mydata;

-- 非法JSON时抛出错误
SELECT JSON_VALUE(header_info, '$."Message-ID"' ERROR ON ERROR) AS message_id
FROM epres.mydata;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 13:42:36