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

Oracle JSON API:如何更新JSON数组中指定单条记录的字段值

解决JSON数组中指定元素字段的更新问题

你需要通过JSONPath过滤表达式精准定位目标元素,再修改对应字段,避免批量修改所有元素的salary。

正确的json_transform调用方式

使用带过滤条件的JSONPath定位目标元素:

json_transform(
  json_field_in_table,
  SET '$[*]?(@.name == "Kunal").salary' = 15000
)

语法说明

  • $[*]:遍历JSON数组中的所有元素
  • ?(@.name == "Kunal"):筛选出name字段等于Kunal的元素
  • .salary:指定要修改的目标字段

完整表更新语句

如果要直接更新数据库表中的数据,可执行以下SQL:

UPDATE your_table_name
SET json_field_in_table = json_transform(
  json_field_in_table,
  SET '$[*]?(@.name == "Kunal").salary' = 15000
)
-- 可选:添加WHERE条件定位到特定行,比如主键匹配
WHERE id = your_target_row_id;

注意事项

  • 确认你的数据库版本支持JSONPath过滤语法(如Oracle 12c及以上、PostgreSQL 12及以上等主流数据库均支持)
  • 若原JSON中salary为字符串类型,更新值可设为'15000',或依据数据库类型转换规则处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 14:55:25