Oracle - JSON_OBJECT - ORA-40478: слишком большое выходное значение (максимум: 4000) - PullRequest
1 голос
/ 30 января 2020

Я использую Oracle 18 c базу данных.

Для одного из моих запросов я пытаюсь сгенерировать JSon из 3-х уровней таблиц.

pages_tbl 
    page_regions_tbl 
        region_items_tbl 

Для что я подготовил ниже запроса. Но это дает мне ошибку ORA-40478: output value too large (maximum: 4000)

SELECT 
  JSON_ARRAYAGG(
    JSON_OBJECT(
      'page' VALUE p.name, 
      'regions' VALUE(
        SELECT 
          JSON_ARRAYAGG(
            JSON_OBJECT(
              'region' VALUE r.name, 
              'items' VALUE(
                SELECT 
                  JSON_ARRAYAGG(
                    JSON_OBJECT(
                      'item_name' VALUE i.item_name, 'item_value' VALUE i.item_value
                    ) RETURNING CLOB
                  ) 
                FROM region_items_tbl i
               WHERE i.region_id = r.region_id
                 AND i.enabled = 1
              )
            ) RETURNING CLOB
          ) 
        FROM page_regions_tbl r 
       WHERE r.page_id = p.page_id
         AND r.enabled = 1
      ) 
    ) RETURNING CLOB
  ) 
 FROM pages_tbl p 
WHERE p.category_id = 10150
  AND p.enabled = 1

Я уже написал RETURNING CLOB, поэтому я ожидал гладкого результата, но получил ошибку. Может ли кто-нибудь указать мне, что я делаю неправильно или как я могу исправить этот запрос

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