json - 如何在 PL/SQL 中查询非标量 JSON 值

标签 json oracle scalar

我有以下 JSON 输入:

[{a:1}, {a:2}]
我想要以下表格输出(单个 varchar2 列/两行):
{a:1}
{a:2}
我试过:
select * from json_table(
   '[{a:1}, {a:2}]',
   '$[*]'
   error on error
   columns xxx varchar2 path '$'
);
我得到:
ORA-40456: JSON_VALUE evaluated to non-scalar value
如何在 PL/SQL 中完整查询那些非标量 JSON 值,例如“{a:1}”?我知道 JSON_QUERY 是 JSON_VALUE 的非标量对应物,但我没有明确使用 JSON_VALUE,所以我不知道在这个查询中我会在哪里插入 JSON_QUERY。
(在现实生活中,初始数组中的那些 JSON 值将是复杂的结构,所以我不想将它们一直解析到它们的标量组件,然后再次将它们拼凑在一起)。
我使用 Oracle 18.1

最佳答案

如果您使用 json_query,我认为它应该可以正常工作列定义。

select * from json_table(
   '[{a:1}, {a:2}]',
   '$[*]'
   error on error
   columns xxx varchar2 FORMAT JSON path '$'
);

关于json - 如何在 PL/SQL 中查询非标量 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64805568/

相关文章:

php - 使用 PHP 连接到外部服务器上的 ORACLE 数据库?

java - Apache 飞艇/ Spark : Why can't I access a remote DB with this code sample

spring - 如何在Oracle数据库中创建作业存储的Quartz表?

ruby-on-rails - ruby on rails、meta_search 和不区分大小写的 oracle

perl - 我应该如何使用 Perl 的标量范围运算符?

java - LibGDX:如何在不修改原始 vector 的情况下将 vector 与标量相乘? (Java游戏中的简单重力系统)

javascript - 使用 url 编码的 JSON 有效负载进行 POST 转换

javascript - 根据所选的州显示 马来西亚 城市

mysql - 如何从 MySQL 中的 JSON 中选择值?

javascript - 将变量与 json 对象进行比较