将密钥附加到 JSON_OBJ_COLUMN - Oracle
Posted
技术标签:
【中文标题】将密钥附加到 JSON_OBJ_COLUMN - Oracle【英文标题】:Append Key into JSON_OBJ_COLUMN - Oracle 【发布时间】:2021-05-20 11:36:33 【问题描述】:在 Oracle 12c 中,我创建了一个带有 json 对象的表。
想象下一个样本:
id | date | json_obj |
---|---|---|
1 | 01-MAY-2021 | key_1: val1, key_2: val2 |
现在我想更新 key_2 值,并将 key_3: val3 添加到与 id 1 相关的同一个 json 对象中。
可以编辑吗?还是我必须覆盖?
【问题讨论】:
【参考方案1】:如果你的DB版本是12R2+,那么你可以连续使用PARSE()
和PUT()
对象类型JSON_OBJECT_T
,然后应用标准的UPDATE
语句如 p>
DECLARE
jobj JSON_OBJECT_T;
jdoc tab.json_obj%TYPE;
BEGIN
SELECT json_obj
INTO jdoc
FROM tab
WHERE id = 1;
jobj := JSON_OBJECT_T.PARSE( jdoc );
jobj.PUT( 'key_2', 'val_22' );
jobj.PUT( 'key_3', 'val_3' );
jdoc := jobj.TO_CLOB();
DBMS_OUTPUT.PUT_LINE( jdoc );
UPDATE tab
SET json_obj = jdoc
WHERE id = 1;
END;
/
【讨论】:
以上是关于将密钥附加到 JSON_OBJ_COLUMN - Oracle的主要内容,如果未能解决你的问题,请参考以下文章
在 AWS API Gateway 中,我可以在不附加 API 密钥的情况下使用使用计划吗?
将查询字符串附加到 htaccess PDF 重定向 URL