json - 如何在 PL/SQL 中查询非标量 JSON 值
问题描述
我有以下 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 '$'
);
推荐阅读
- python - 用户警告:此模式具有匹配组
- java - 如何在rest get调用中将Java日期作为路径变量传递
- elasticsearch - ElasticSearch 术语查询匹配多值字段中的所有值
- javascript - Jquery获取表行计数忽略带类的行
- c# - 在 ASP.NET Core 2.1 Web 客户端中存储不记名令牌的位置
- excel - 仅计算唯一日期
- node.js - 如何有1个窗口而不是多个windowsss,nodejs
- python - Networkx - 如何更改边缘 ID?
- ios - 删除号码电话联系人 - Swift 3 - 4
- python - Django Rest Framework 模型对象返回带有选项的字段的存储值