Oracle json_object с большим содержимым, результатом которого является ORA-40459 - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь построить JSON с функциями Oracle, такими как json_object, из больших таблиц.Есть несколько уровней вложенности, например, я использую json_arrayagg внутри json_object.Таким образом, я очень быстро достигаю предела типа возвращаемых данных.Тип данных по умолчанию - varchar2(4000).Конечно, я могу расширить это до varchar2(32767) или даже закрыть, указав ключевое слово RETURNING.Но clob поддерживается только json_objectagg и json_arrayagg, и даже расширение до 32767, похоже, не работает в каждом случае.Я все еще получаю ORA-40459, несмотря на то, что я указал varchar2(32767).

Есть ли способ расширить это ограничение?Эти функции не кажутся очень полезными с такими ограничениями!

Или есть другие способы выполнить эту задачу?Проблема в моем случае - огромный объем данных, которые я должен экспортировать.Поэтому невозможно выполнить эту задачу на клиенте.Может быть, это можно сделать в PL / SQL, но я не уверен в производительности.И мне пришлось бы использовать стороннюю библиотеку, такую ​​как pljson, которая должна быть установлена.

1 Ответ

0 голосов
/ 01 февраля 2019

Может быть, это слишком поздно.У меня была та же проблема, и я решил ее, добавив

JSON_OBJECT ( ...

RETURN VARCHAR2 (5000) ) Как JSON_STRING

в конце оператора объекта json перед закрывающим парантезом.

Вы также можете добавить ВОЗВРАЩАЕМЫЙ КЛОБ, просто чтобы убедиться,

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