当我使用JSON_TABLE
表达式(而不是表表达式中的JSON_VALUE
)向COLUMN
查询值时,例如:
WITH SAMPLE_TABLE AS (
SELECT '{"a":[{"b":"foo"},{"b":"bar"}]}' AS PAYLOAD FROM DUAL
)
SELECT JSON_VALUE(SUB, '$.b')
FROM SAMPLE_TABLE, JSON_TABLE(
PAYLOAD,
'$.a[*]'
COLUMNS (SUB CLOB FORMAT JSON PATH '$')
);
我收到一条错误消息,表明我正在使用无效的XPATH表达式(ORA-31013:无效的XPATH表达式)。仅此消息会使我感到困惑,但是如果我将选择更改为JSON_VALUE(TO_CHAR(SUB), '$.b')
,查询将通过显示两行 foo 和 bar 来使我更困惑。 >
在Oracle中使用等价的XML时,我没有任何此类问题,在这种情况下,这种选择就可以了。我没有使用列,因为这使我可以重用许多我已经拥有的XML内容,除此之外,我很好奇这里有什么问题。我正在使用 Oracle Database 12c企业版12.2.0.1.0 。