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

Oracle中使用SQL更新CLOB字段内JSON数据的技术问询

处理Oracle 12.2中CLOB字段的JSON更新

嘿,针对你在Oracle 12.2里修改CLOB中JSON内容的需求,我给你整理了两种场景的具体SQL写法,都是用Oracle原生的JSON函数实现,简单高效:

1. 向JSON添加新键值对 perm_bigboss: 1

可以用JSON_MERGEPATCH函数,它能把新的JSON片段合并到原有JSON结构中——不存在的键会直接添加,已存在的键会覆盖值(这里我们是加新键,刚好适用)。假设你的表名为your_table,CLOB字段是json_clob_column,用来定位行的主键是id,SQL语句如下:

UPDATE your_table
SET json_clob_column = JSON_MERGEPATCH(json_clob_column, '{"perm_bigboss": 1}')
WHERE id = <目标行ID>; -- 如果要批量更新所有行,去掉WHERE条件即可

小提示:如果你的CLOB字段没有加IS JSON约束,建议在WHERE里加上AND json_clob_column IS JSON,避免处理无效JSON导致报错。

2. 将已有键 perm_admin 的值设为0

这种修改已有键值的场景,用JSON_SET函数更直接,它可以精准定位到指定路径的键并修改其值。SQL语句如下:

UPDATE your_table
SET json_clob_column = JSON_SET(json_clob_column, '$.perm_admin', 0)
WHERE id = <目标行ID>; -- 批量更新同理去掉WHERE

JSON_SET的逻辑是:JSON_SET(目标JSON, JSON路径, 新值),这里的$.perm_admin是标准JSON路径表达式,用来定位到perm_admin这个键。如果这个键原本不存在,JSON_SET也会自动添加它(不过你是要修改已有值,所以不用担心这个情况)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:44:15