【发布时间】:2021-12-26 18:45:23
【问题描述】:
我有一个带有 JSON 的表格列:
{ "name":"Tony","age":"20","sex":"male" }
当我尝试使用 json_mergepatch 添加新数据时:
UPDATE users SET user =
json_mergepatch(user, '{"email":"tony@mail.com"}')
where name = 'Tony';
我的列数据变成Null而不是{ "name":"Tony","age":"20","sex":"male", "email":"tony@mail.com" }
见小提琴:https://dbfiddle.uk/?rdbms=oracle_18&fiddle=7cbe31629bb709d1bbe7056fc6710673 Fiddle 可以工作,但在我的代码中由于某种原因它不起作用。我的 JSON 是有效的。
我做错了什么?
更新
即使列是 CLOB,Oracle 似乎对 JSON 也有 4000 个字符的限制。使用json_mergepatch 操作时,如果该列有 4000 个字符,则将其设为 NULL!
发现这个低谷测试。
有没有办法克服这个限制?
【问题讨论】:
标签: sql json oracle sql-update oracle19c