Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Сформировать большой xml  [new]
Mr_Muscle
Member

Откуда:
Сообщений: 108
Всем привет!

Задача - сформировать XML файл средствами Oracle 11. Начинаю формировать вот так:

  SELECT XMLELEment("firms",
                      XMLAGG(XMLELEMENT("firm",
                                        XMLELEMENT("FirmID", wo.id),
                                        XMLELEMENT("Name",
                                                   substr(wo.namerus, 1, 120)),
                                        XMLELEMENT("ShortName", wo.code)           
                                                   )))
      into my_var
      FROM organs wo
     where type_id = 5;
  
    --Выводим в вывод
    dbms_output.put_line(my_var.GetClobVal());


НО, после добавления элементов или расширения выборки, видимо значение переменной становится слишком большим и вылетает ошибка ORA-06502 PL/SQL Ошибка числа или значения.

Вопрос: Как сформировать большой xml? Может можно его как-то построчно в файл писать. Подскажите направление плиз.
14 дек 18, 22:31    [21764505]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать большой xml  [new]
-2-
Member

Откуда:
Сообщений: 15330
Mr_Muscle
Как сформировать большой xml
дело не в xml, а в передаче значения, которое не может быть преобразовано к типу параметра.
15 дек 18, 00:27    [21764578]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать большой xml  [new]
Mr_Muscle
Member

Откуда:
Сообщений: 108
-2-,

Да, была такая мысль. Но если просто продублировать первый элемент больше двух раз, то все равно такая ошибка вылетает.
15 дек 18, 13:28    [21764784]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать большой xml  [new]
-2-
Member

Откуда:
Сообщений: 15330
Mr_Muscle
была такая мысль
А мысли использовать инструмент, который показывает место ошибки, например sqlplus, не было и нет?
15 дек 18, 16:01    [21764838]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать большой xml  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10042
Mr_Muscle

--Выводим в вывод


1. PL/SQL вообще не имеет ввода/вывода т.к. выполняется на сервере БД. Так-что DBMS_OUTPUT не вывод, он просто помещает в буфер который клиент может прочитать (причем не когда поместили а только тогда когда управление вернется клиенту.
2. Исходя из DBMS_OUTPUT ты хочешь получить XML на клиенте, ну так используй SPOOL (надеюсь клиент поддерживает sppol).

SY.
15 дек 18, 22:23    [21765005]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать большой xml  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6712
Mr_Muscle,

А my_var какого типа будет?
17 дек 18, 10:05    [21765677]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать большой xml  [new]
XMLer
Member

Откуда:
Сообщений: 258
Mr_Muscle,
стек ошибки опубликуешь?
17 дек 18, 14:52    [21766010]     Ответить | Цитировать Сообщить модератору
 Re: Сформировать большой xml  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10042
XMLer
стек ошибки опубликуешь?


И что это даст? DBMS_OUTPUT.PUT_LINE CLOBы не принимает, посeму CLOB будет преобразован в VARCHAR2 что вылетит с ORA-06502 если CLOB >= 32K.

SY.
17 дек 18, 15:09    [21766045]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить