Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
ГлСП Профи
Вступление в Клуб: 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 передается ошибка, результат при этом не меняется.
Сидим и чешем репу, как быть. |
|
 |
ГлСП Профи
Вступление в Клуб: 20.09.2007
|
Чт Мар 04, 2010 07:48   |
|
Полезность: Нет оценки
|
Проблема решена. |
|
 |
Andry Участник - экстремал
Вступление в Клуб: 14.01.2009
|
Чт Мар 04, 2010 09:41  knowledge base |
|
Полезность: Нет оценки
|
Может поделитесь информацией в чем была проблема и какое было решение?
В Оракле есть специальный тип данных для хранения XML - не пробовали? |
|
 |
ГлСП Профи
Вступление в Клуб: 20.09.2007
|
Чт Мар 04, 2010 09:48  Re: knowledge base |
|
Полезность: Нет оценки
|
Andry пишет: | Может поделитесь информацией в чем была проблема и какое было решение?
|
Проблема была по принципу "Сам дурак". С вебсервиса приходил поток, в который левый символ попадал. При этом, когда передавали просто строкой этой проблемы не возникало. Нашли место, и доработали. Вот и вся проблема. |
|
 |
ГлСП Профи
Вступление в Клуб: 20.09.2007
|
Чт Мар 04, 2010 09:49  Re: knowledge base |
|
Полезность: Нет оценки
|
Andry пишет: |
В Оракле есть специальный тип данных для хранения XML - не пробовали? |
Смысла нет. Получили поток, отпарсили средствами IBSO, получили данные, и все. |
|
 |
brizjin Участник
Вступление в Клуб: 21.04.2008
|
Пт Ноя 19, 2010 15:39   |
|
Полезность: Нет оценки
|
У нас такая же ошибка. Ругается когда попадают в тело русские символы. Как победить пока не придумали |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Ср Ноя 24, 2010 21:32   |
|
Полезность: Нет оценки
|
brizjin пишет: | У нас такая же ошибка. Ругается когда попадают в тело русские символы. Как победить пока не придумали |
Такая ошибка, как правило, возникает, когда кодировка тела xml не соответствует кодировке в заголовке xml:
<?xml ... encoding=???? ?>
Проверьте - парсер читает кодировку из заголовки и дальше пытается разбирать сообщение в указанной кодировке. |
|
 |
Mourinjo Участник со стажем
Вступление в Клуб: 21.12.2010
|
Чт Май 14, 2020 15:35  проверка парсером XML_DOM |
|
Полезность: Нет оценки
|
>Проверьте - парсер читает кодировку из заголовки и дальше пытается разбирать сообщение в указанной кодировке.
Добрый день, подскажите пжл как проверить проверяет ли парсер XML_DOM заголовок XML на кодировку ? Можно указать кусок кода ? |
|
 |
|