我有以下 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/