gpt4 book ai didi

json - 如何使用 JSON_TABLE 从 Oracle JSON 列中获取键值作为结果集

转载 作者:行者123 更新时间:2023-12-03 17:36:04 26 4
gpt4 key购买 nike

我在谷歌上搜索了很多,似乎无法找到一个简单的解决方案来解决我的简单用例。
我在 Oracle 12C 数据库中有一个 json 列(当然实际上是一个带有 json 约束的 varchar),并且在该列中我存储了这样的 Map 表示

{
"a":9.0847,
"b":859.947
}

在 plsql 我想返回一个看起来像这样的结果集
key val
a 9.0847
b 859.947

我已经修改了下面看似无限的变化,并且所有示例对于我的用例来说都过于人为。
select b.* from mytable a,json_table(myJsonCol,'$'
columns ( value varchar2(500) path '$.myjsonkey')) b

但这仅返回一个值列表,而没有相应的键。
json 数据总是字符串双键值。

谢谢

编辑
为了添加更多上下文,我现在在 postgres 中使用 json_each 来执行此操作,并且我正在 Oracle 中寻找类似的方法。

最佳答案

尝试这个:

declare
jo JSON_OBJECT_T;
i NUMBER;
keys JSON_KEY_LIST;
CURSOR c_json IS
SELECT myJsonCol FROM mytable;
begin
FOR rec IN c_json
LOOP
jo := JSON_OBJECT_T.parse(rec.myJsonCol);
keys := jo.get_keys;
dbms_output.put_line('KEY VAL');
FOR i in 1..keys.COUNT
LOOP
dbms_output.put_line(keys(i) || ' ' || jo.get_Number(keys(i)));
END LOOP;
END LOOP;
END;
/

关于json - 如何使用 JSON_TABLE 从 Oracle JSON 列中获取键值作为结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40424591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com