【发布时间】:2021-04-03 19:39:43
【问题描述】:
我用谷歌搜索了很多,但似乎无法为我的简单用例找到简单的解决方案。 我在 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 中寻找类似的方法。
【问题讨论】:
-
解决办法是什么?
-
@RaviShankar 我从来没有找到过,必须跟踪各种对象类型的键并单独使用它
-
你是怎么做到的?您是否能够在一列中获取所有键?
-
@RaviShankar 不,我们最终将键存储在另一个表中,但是您使用列存储它们的想法可能会实现相同的效果.. 问题是保持它们一致
-
可能,您可以使用链接中给出的术语:link