CftClub.ru
Клуб специалистов ЦФТ-Банк

Проблема при загрузке XML из CLOB

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Интеграция с внешними подсистемами
Предыдущая тема :: Следующая тема  
Автор Сообщение
ГлСП
Профи
<Банки (менее 3 участников)>


Вступление в Клуб: 20.09.2007
СообщениеПн Янв 18, 2010 06:55   Проблема при загрузке XML из CLOB Ответить с цитатой
Полезность: Нет оценки
Разработали систему которая получает данные из внешней системы в XML. XML получали в строке, и отдавали эту строку парсеру. Все работало великолепно, пока не приперло загрузить внешний справочник размером в несколько мег. Решили делать через CLOB, и тут же словили ошибку


Вот ошибка выполнения


Код:

ORA-20100: Error occurred while parsing:
Fatal Error at file LOB, line 1, char 1
An exception occurred! Type:UTFDataFormatException, Message:invalid byte 1 (?) of a 1-byte sequence.
ORA-06512: на  "IBS.XRC_XMLPARSER", line 40
ORA-06512: на  "IBS.XRC_XMLPARSER", line 256
ORA-06512: на  "IBS.Z$RUNTIME_XML_DOM", line 68
ORA-06512: на  "IBS.Z$KOU_DECL_MGM_AGN_LOAD_MIGOM", line 71
ORA-06512: на  "IBS.Z$U$4990027875", line 61
ORA-06512: на  line 1



Вот код программы

Код:


    p := &xml.newParser;
    &xml.parseCLOB(p, clb);
    dbms_lob.freetemporary(clb);
    doc := &xml.getDocument(p);
      
    &xml.freeParser(p);








Вот текст самого XML


Код:

         <?xml version="1.0" encoding="windows-1251"?>
         <result>
           <error code="0001">Внутренняя ошибка: Не удалось загрузить  справочник AgentsPoints.
         Res ом</error>
         </result>




Не обращайте внимание на то, что в xml передается ошибка, результат при этом не меняется.

Сидим и чешем репу, как быть.
ГлСП
Профи
<Банки (менее 3 участников)>


Вступление в Клуб: 20.09.2007
СообщениеЧт Мар 04, 2010 07:48    Ответить с цитатой
Полезность: Нет оценки
Проблема решена.
Andry
Участник - экстремал
<Банки (менее 3 участников)>


Вступление в Клуб: 14.01.2009
СообщениеЧт Мар 04, 2010 09:41   knowledge base Ответить с цитатой
Полезность: Нет оценки
Может поделитесь информацией в чем была проблема и какое было решение?

В Оракле есть специальный тип данных для хранения XML - не пробовали?
ГлСП
Профи
<Банки (менее 3 участников)>


Вступление в Клуб: 20.09.2007
СообщениеЧт Мар 04, 2010 09:48   Re: knowledge base Ответить с цитатой
Полезность: Нет оценки
Andry пишет:
Может поделитесь информацией в чем была проблема и какое было решение?



Проблема была по принципу "Сам дурак". С вебсервиса приходил поток, в который левый символ попадал. При этом, когда передавали просто строкой этой проблемы не возникало. Нашли место, и доработали. Вот и вся проблема.
ГлСП
Профи
<Банки (менее 3 участников)>


Вступление в Клуб: 20.09.2007
СообщениеЧт Мар 04, 2010 09:49   Re: knowledge base Ответить с цитатой
Полезность: Нет оценки
Andry пишет:


В Оракле есть специальный тип данных для хранения XML - не пробовали?


Смысла нет. Получили поток, отпарсили средствами IBSO, получили данные, и все.
brizjin
Участник
Неподтвержденный


Вступление в Клуб: 21.04.2008
СообщениеПт Ноя 19, 2010 15:39    Ответить с цитатой
Полезность: Нет оценки
У нас такая же ошибка. Ругается когда попадают в тело русские символы. Как победить пока не придумали
dnk_dz
Эксперт
Резидент CftClub
Совладелец


Вступление в Клуб: 19.09.2007
СообщениеСр Ноя 24, 2010 21:32    Ответить с цитатой
Полезность: Нет оценки
brizjin пишет:
У нас такая же ошибка. Ругается когда попадают в тело русские символы. Как победить пока не придумали

Такая ошибка, как правило, возникает, когда кодировка тела xml не соответствует кодировке в заголовке xml:
<?xml ... encoding=???? ?>
Проверьте - парсер читает кодировку из заголовки и дальше пытается разбирать сообщение в указанной кодировке.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Интеграция с внешними подсистемами Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru