ORA-31013 при чтении JSON_VALUE из JSON_TABLE - PullRequest
0 голосов
/ 10 ноября 2018

Когда я запрашиваю 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 , что смущает меня еще больше.

У меня нет таких проблем при использовании XML-эквивалента в Oracle, где такие селекты просто работают. Я не использую столбцы, так как это позволяет мне повторно использовать многие вещи, которые у меня уже есть для XML, и, кроме того, мне интересно, что здесь не так. Я использую Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...