我有一个Oracle / Json问题......我希望有人可以提供帮助。
我刚刚发现了Oracle的JSON_TABLE功能,我正在探索如何使用它来存储,更新和恢复Json数据。
我可以查询JSON数组,现在我想用值更新数组。
我有一个json数组(它代表“一年中的一天”列表),如下所示:
create table tmp_json (
id number(10) not null,
data clob,
constraint pk_tmp_json primary key (id),
constraint check_data_json check (data is json)
);
INSERT INTO tmp_json (id, data)
VALUES (3,
'{
"doy" : [ 7, 8, 9 ]
}'
);
我可以用
之类的东西查询数组select tmp_json.id,
jt.*
from tmp_json,
json_table(data, '$'
columns (
nested path '$.doy[*]' columns (
"doy" path '$' null on error
)
)
) "JT";
ID DOY
-- ---
3 7
3 8
3 9
太棒了......
我想在数组中添加一个项目,如果我们是一年中的第10天,请说“10”,这样说:
select to_number(to_char(to_date('10-01-2018'),'DDD')) doy from dual;
10
如何使用上面的“10”轻松更新存储的json
只有在JSON数组中不存在“10”时,我才能这样做?
我已经感谢任何需要花些时间看这个的人了!
谢谢! 大卫