Sql 从JSON_表读取JSON_值时使用ORA-31013

Sql 从JSON_表读取JSON_值时使用ORA-31013,sql,json,oracle,Sql,Json,Oracle,当我使用JSON_值表达式(而不是表表达式中的列)查询JSON_表中的值时,例如: 我得到一个错误,我正在使用一个无效的XPATH表达式(ORA-31013:无效的XPATH表达式)。消息本身让我感到困惑,但如果我将select更改为JSON\u值(更改为“$.b”),查询将显示两行foo和bar,这两行更让我困惑 在Oracle中使用XML等价物时,我没有遇到任何此类问题,因为这样的选择只起作用。我不使用列,因为这允许我重用XML中已有的许多内容,除此之外,我很好奇这里到底出了什么问题。我使用

当我使用
JSON_值
表达式(而不是表表达式中的
)查询
JSON_表
中的值时,例如:

我得到一个错误,我正在使用一个无效的XPATH表达式(ORA-31013:无效的XPATH表达式)。消息本身让我感到困惑,但如果我将select更改为
JSON\u值(更改为“$.b”)
,查询将显示两行foo和bar,这两行更让我困惑

在Oracle中使用XML等价物时,我没有遇到任何此类问题,因为这样的选择只起作用。我不使用列,因为这允许我重用XML中已有的许多内容,除此之外,我很好奇这里到底出了什么问题。我使用的是Oracle数据库12c企业版12.2.0.1.0

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 '$')
);