相关疑难解决方法(0)

在 Oracle 中的 JSON_VALUE() 中传递动态密钥

我有一个包含 Json 数据的俱乐部类型列。我有大约 100 个键,每条记录都是独一无二的。我们正在使用 json_value('json_data', 'keyname')。就我而言,我不知道这个记录的实际情况。所以我需要加入另一个定义了键的表。代替键名,我想传递列名。它给出了一些错误说:

语法错误,
期望:字符串

任何人都可以建议如何通过在运行时传递动态键来从 json 列中获取数据。

假设我有两个表 table_1 和 table_2。Table_1 有一个名为 json_data_column 的列,它以 json 格式存储数据。Table_1 有 FK 到 TABLE_2 有映射键。所以我们必须找出每条记录的动态键的值是多少。

如果我给任何静态 String 代替 t2.json_key ,那么它的工作。但是当给出动态值时,它不起作用。

在职的

select
       json_value ( json_value (t1.json_data_column, '$.string'), '$.my_key' )
from TABLE_1 t1
       inner join TABLE_2 t2 on t1.json_key_fk = t2.id
Run Code Online (Sandbox Code Playgroud)

不工作

select
       json_value ( json_value (t1.json_data_column, '$.string'), t2.json_key )
from TABLE_1 t1
       inner join TABLE_2 t2 on t1.json_key_fk = t2.id
Run Code Online (Sandbox Code Playgroud)

数据集:

select
       json_value ( json_value (t1.json_data_column, '$.string'), '$.my_key' ) …
Run Code Online (Sandbox Code Playgroud)

sql oracle json

5
推荐指数
1
解决办法
3778
查看次数

标签 统计

json ×1

oracle ×1

sql ×1