【发布时间】:2021-02-03 13:37:22
【问题描述】:
我正在使用 Oracle SQL Developer 并且想要更新 JSON 中特定键的值。
我正在使用以下查询:
update M
set OBJECT = json_mergepatch (
OBJECT, '{ "$.ABC.DATA.WORKFLOW_STATUS.ABC" : "MONIKA" }'
) WHERE KEY_1 = '121';
输出:错误报告
SQL 错误:ORA-00904:“JSON_MERGEPATCH”:标识符无效 00904. 00000 - "%s: 无效标识符"
请建议我正确的查询。
【问题讨论】:
-
原始 JSON 的结构是什么,您期望的 JSON 结果是什么?
-
在我的 JSON 中,此路径 (ABC.DATA.WORKFLOW_STATUS.ABC) 存在 n 想要更新此键中的值,但它不支持 JSON_MERGEPATCH
-
请告诉我们您的 Oracle 数据库的准确版本 - 不是 SQL Developer,而是数据库本身。每个提出问题的人都应该这样做。
-
@StewAshton 我正在使用 Oracle Database 12c 企业版
-
JSON_MERGEPATCH 是在 Oracle 数据库 19c 版中引入的。如果您尝试在旧版本中使用它,您将收到“无效标识符”消息 - 您已经这样做了。