ORA-31013从JSON_TABLE

时间:2018-11-10 16:30:57

标签: sql json oracle

当我使用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

0 个答案:

没有答案