powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / текст 40-50Кб в xml-тег через xmlforest=>ORA-22813: operand value exceeds system limits
10 сообщений из 10, страница 1 из 1
текст 40-50Кб в xml-тег через xmlforest=>ORA-22813: operand value exceeds system limits
    #39453761
stil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не получается засунуть в XML тег текст размером в пределах 40-50Кб - получаю
Код: plsql
1.
ORA-22813: operand value exceeds system limits


МЕньший - 17-20Кб засовывается легко

В лимит чего я уперся? Есть ли смысл играть оракловыми параметрами? Или пытаться переформировать запрос?


v11.2.0.3
...
Рейтинг: 0 / 0
текст 40-50Кб в xml-тег через xmlforest=>ORA-22813: operand value exceeds system limits
    #39453769
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stilНе получается засунуть в XML тег текст размером в пределах 40-50Кб - получаю
Код: plsql
1.
ORA-22813: operand value exceeds system limits


МЕньший - 17-20Кб засовывается легко

В лимит чего я уперся? Есть ли смысл играть оракловыми параметрами? Или пытаться переформировать запрос?


v11.2.0.3

И как ты это делаешь?
...
Рейтинг: 0 / 0
текст 40-50Кб в xml-тег через xmlforest=>ORA-22813: operand value exceeds system limits
    #39453770
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stil,
Oracle Error messages$ oerr ora 22813
22813, 00000, "operand value exceeds system limits"
// *Cause: Object or Collection value was too large. The size of the value
// might have exceeded 30k in a SORT context, or the size might be
// too big for available memory.
// *Action: Choose another value and retry the operation.
...
Рейтинг: 0 / 0
текст 40-50Кб в xml-тег через xmlforest=>ORA-22813: operand value exceeds system limits
    #39453772
stil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Lejnin,

причем вот ведь что интересно:
Код: plsql
1.
2.
3.
4.
5.
6.
select length(t.file_foto_base64),
                    length(t.file_sign_base64),
                    XMLFOREST(2 type,
                                     t.file_foto_base64 photo) personb
          from bd.tbl t
          where id_rep=21385



А вот так проканывает! Мне надо впилить два тега - фото человека и его подпись. Подпись в среднем - 17-20Кб, фото 40-50. Я тоже сначала подумал об пределе "30кб" из описания ошибки. НО

вся xml-ина там большая и ветвистая. Убрав лишнее - в тег 40Кб - нормально вставились. Значит дело не в этом
...
Рейтинг: 0 / 0
текст 40-50Кб в xml-тег через xmlforest=>ORA-22813: operand value exceeds system limits
    #39453833
XMLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stilНе получается засунуть в XML тег текст размером в пределах 40-50Кб

v11.2.0.3
Если б это было правдой, xdb отмер бы за ненадобностью.
Код: plsql
1.
2.
3.
with t as
(select xmlagg (xmlelement ("table", table_name)).getclobval(1,2) as data from sys.all_tables)
select length(data), xmlforest (data as "tables"),  xmlelement ("tables", data) from t


190 кб без ошибок.
Твой пример ниже, даже если успешно завершиться, вернет кривой документ. Сделай вменяемый тест-кейс и опубликуй его.
...
Рейтинг: 0 / 0
текст 40-50Кб в xml-тег через xmlforest=>ORA-22813: operand value exceeds system limits
    #39453982
stil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XMLer,

упростил case до предела

Код: plsql
1.
2.
3.
4.
5.
CREATE TABLE BD.TTT
(
  PCOD   VARCHAR2(3 BYTE)                       NOT NULL,
  PHOTO  CLOB                                   NOT NULL
)


вставляем в табличку одну строку - код любой - это не важно. photo - клоб килобайт 40.
Запрос тоже упростил до предела
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT XMLSERIALIZE (DOCUMENT XMLresult) XMLresult
              FROM (
        SELECT XMLRoot(
                      XMLELEMENT (
                           oplist,
                           XMLAGG (
                              XMLELEMENT (
                                 op,
                                       XMLFOREST(t.photo) personb 
                                   ))
                                       ),version '1.0" encoding="windows-1251')
                     AS XMLresult
             from bd.ttt t
             group by pcod
            )


получаем ORA-22813: operand value exceeds system limits

Уже в процессе создания кейза нашел - если убираем group by - запрос работает нормально. Если размер фото около 17 Кб то работет и с group by

Я собственно и не говорил что проблема в самом XML. Я и пытаюсь понять в чем проблема
...
Рейтинг: 0 / 0
текст 40-50Кб в xml-тег через xmlforest=>ORA-22813: operand value exceeds system limits
    #39454027
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stil,

Причину можно найти в

Xmlagg Query Fails Silently Or Gives ORA-22813: Operand Value Exceeds System Limits In 11.2.0.2 or 11.2.0.3 (Doc ID 1456531.1)
...
Рейтинг: 0 / 0
текст 40-50Кб в xml-тег через xmlforest=>ORA-22813: operand value exceeds system limits
    #39454028
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и собственно ORA-22813: Operand Value Exceeds System Limits (Doc ID 2227182.1)
...
Рейтинг: 0 / 0
текст 40-50Кб в xml-тег через xmlforest=>ORA-22813: operand value exceeds system limits
    #39454035
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stil,

ORA-22813 Returned On XML Query Using Xmlagg With Group By on 11.2.0.3 after setting event 44410 (Doc ID 1554992.1)

Тут есть дополнение, если 44410 один не справился.
...
Рейтинг: 0 / 0
текст 40-50Кб в xml-тег через xmlforest=>ORA-22813: operand value exceeds system limits
    #39552338
Stawros
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоже получил ORA-22813 на XMLAGG.

Был запрос вида

Код: sql
1.
2.
3.
SELECT A, B,  XMLAGG( XMLELEMENT(...) ORDER by Z ) AS XML_
  FROM table
 GROUP BY A, B



переписал в

Код: sql
1.
2.
3.
4.
5.
SELECT A, B,  XMLAGG( XML_EL_  ORDER by Z ) AS XML_
   FROM 
    (SELECT A, B, Z, XMLELEMENT(..) AS XML_EL_ 
       FROM table)
 GROUP BY A, B



и падать перестало. Причем интересно, что первый запрос был обернут в общий большой запрос, где результат XMLAGG был вложенным элементом общей XML - так вот большой запрос не падал, а просто та часть, где должен был быть результат XMLAGG был пустым. Т.е. падения как такового не было, оракл вместо ошибки передавал NULL из подзапроса. Если подзапрос с XMLAGG вытащить, то он начинал падать с ORA-22813.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / текст 40-50Кб в xml-тег через xmlforest=>ORA-22813: operand value exceeds system limits
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]