powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / xml с названием тэгов на русском языке в blob не преобразуется в XMLType
25 сообщений из 28, страница 1 из 2
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371685
wwee12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется xml с названием тэгов на русском языке. XML поместил в BLOB. Потом пытаюсь преобразовать его в xml с помощью XMLType возникает ошибка "ORA-31011: сбой разбора XML" хотя сам xml нормальный.

select
XMLType(b.fileblob,
NLS_CHARSET_ID('CL8ISO8859P5'))
,b.fileblob
from BLOBFILE b
where B.FILENAME like '%OPPF%'


Error at line 2
ORA-31011: сбой разбора XML
ORA-19202: Возникла ошибка при обработке XML
LPX-00240: тэг начала элемента сформирован неверно
Error at line 5
ORA-06512: на "SYS.XMLTYPE", line 265
ORA-06512: на line 1

Script Terminated on line 1.
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371718
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wwee12на русском языке
CL8ISO8859P5Уверен?
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371724
wwee12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elicwwee12на русском языке
CL8ISO8859P5Уверен?

да
select * from nls_database_parameters
NLS_CHARACTERSET CL8ISO8859P5
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371728
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wwee12Elicпропущено...
Уверен?
да
В конструкторе XMLType надо указывать кодировку xml-файла, а не кодировку базы.
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371748
wwee12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AmKadwwee12пропущено...

да
В конструкторе XMLType надо указывать кодировку xml-файла, а не кодировку базы.


Если указываю 'CL8MSWIN1251' то возникает ошибка преобразования

select
XMLType(b.fileblob,
NLS_CHARSET_ID('CL8MSWIN1251'))
,b.fileblob
from BLOBFILE b
where B.FILENAME like '%OPPF%'


[Error] Execution (8: 9): ORA-31011: сбой разбора XML
ORA-19202: Возникла ошибка при обработке XML
LPX-00200: невозможно выполнить преобразование из кодирования WINDOWS-1251 в ISO-8859-5
Error at line 1
ORA-06512: на "SYS.XMLTYPE", line 265
ORA-06512: на line 1
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371752
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wwee12AmKadпропущено...
В конструкторе XMLType надо указывать кодировку xml-файла, а не кодировку базы.
Если указываю 'CL8MSWIN1251' то возникает ошибка преобразования
Решил перепробовать все известные тебе кодировки? Приложи сюда пример небольшого файлоблоба. Посмотрим, что там за кодировка.
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371754
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wwee12Если указываю 'CL8MSWIN1251' то возникает ошибка преобразованияПеребираешь кодировки методом научного тыка?
Ещё раз: в какой кодировке сам файл?
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371758
wwee12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elicwwee12Если указываю 'CL8MSWIN1251' то возникает ошибка преобразованияПеребираешь кодировки методом научного тыка?
Ещё раз: в какой кодировке сам файл?

в самом xml указано
<?xml version="1.0" encoding="WINDOWS-1251"?>
,но потом я этот файл заливаю в blob может при этом меняется кодировка?
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371764
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wwee12в самом xml указано
<?xml version="1.0" encoding="WINDOWS-1251"?>Это еще не дает 100%-но гарантии того, что файл в этой кодировке.
wwee12,но потом я этот файл заливаю в blob может при этом меняется кодировка?Если заливаешь корректно, то меняться не должна. Но как ты заливаешь, мы не знаем.
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371765
wwee12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AmKadwwee12пропущено...

Если указываю 'CL8MSWIN1251' то возникает ошибка преобразования
Решил перепробовать все известные тебе кодировки? Приложи сюда пример небольшого файлоблоба. Посмотрим, что там за кодировка.
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371768
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Твой файл действительно в кодировке win-1251. Но он не является валидным XML.
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371773
wwee12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AmKadТвой файл действительно в кодировке win-1251. Но он не является валидным XML.

почему и как проверить?
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371775
Покажи начало XML.
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371781
wwee12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джонни_ИнглишПокажи начало XML.
я как раз начала оставил первые две строки и одну последнюю, а середину всю вырезал
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371782
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKadНо он не является валидным XML.
Код: plsql
1.
2.
3.
4.
5.
SQL> select xmltype('<?xml version="1.0" encoding="WINDOWS-1251"?><Файл>    <ИмяФайла>PR-700.XML</ИмяФайла></Файл>').extract('/*/*') from dual;

XMLTYPE('<?XMLVERSION="1.0"ENCODING="WINDOWS-1251"?><ФАЙЛ><ИМЯФАЙЛА>PR-700.XML</ИМЯФАЙЛА></ФАЙЛ>').EXTRACT('/*/*')
--------------------------------------------------------------------------------------------------------------------------------------------------------
<ИмяФайла>PR-700.XML</ИмяФайла>
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371783
Пока писал, твои сообщения прилетели) - Все видно.
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371791
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicAmKadНо он не является валидным XML.
Код: plsql
1.
2.
3.
4.
5.
SQL> select xmltype('<?xml version="1.0" encoding="WINDOWS-1251"?><Файл>    <ИмяФайла>PR-700.XML</ИмяФайла></Файл>').extract('/*/*') from dual;

XMLTYPE('<?XMLVERSION="1.0"ENCODING="WINDOWS-1251"?><ФАЙЛ><ИМЯФАЙЛА>PR-700.XML</ИМЯФАЙЛА></ФАЙЛ>').EXTRACT('/*/*')
--------------------------------------------------------------------------------------------------------------------------------------------------------
<ИмяФайла>PR-700.XML</ИмяФайла>

Да, уже и сам проверил. Oracle его кушает, а вот Notepad++ ругается (кушает, если выставить encoding="utf8"), пока не разобрался почему.
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371811
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKadOracle его кушает, а вот Notepad++ ругается (кушает, если выставить encoding="utf8"), пока не разобрался почему.В общем похоже это баг плагина XMLTools для Notepad++. Не умеет корректно валидировать файлы в encoding="WINDOWS-1251" при наличии русскоязычных тегов.
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371824
wwee12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AmKadAmKadOracle его кушает, а вот Notepad++ ругается (кушает, если выставить encoding="utf8"), пока не разобрался почему.В общем похоже это баг плагина XMLTools для Notepad++. Не умеет корректно валидировать файлы в encoding="WINDOWS-1251" при наличии русскоязычных тегов.

но почему тогда ошибка возникает?
"LPX-00200: невозможно выполнить преобразование из кодирования WINDOWS-1251 в ISO-8859-5"


может какой то именно элемент не может преобразовать или строку или в этом случае другая ошибка была?
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371825
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wwee12но почему тогда ошибка возникает?
"LPX-00200: невозможно выполнить преобразование из кодирования WINDOWS-1251 в ISO-8859-5"

может какой то именно элемент не может преобразовать или строку или в этом случае другая ошибка была?
Этого тебе никто не скажет. Ты же не зря постарался:
wwee12я как раз начала оставил первые две строки и одну последнюю, а середину всю вырезал
Ну а по поводу преобразования символов, читай, проверяй https://ru.wikipedia.org/wiki/ISO_8859-5.
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371827
wwee12, а у тебя собственно какая конечная задача?
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371829
Джонни_Инглишwwee12, а у тебя собственно какая конечная задача?

Так например робит:

Код: plsql
1.
2.
3.
4.
5.
select
extractvalue (XMLType(b.fileblob, 0), '*/ИмяФайла') 
from BLOBFILE b 
--where B.FILENAME like '%OPPF%'
;
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371843
wwee12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джонни_ИнглишДжонни_Инглишwwee12, а у тебя собственно какая конечная задача?

Так например робит:

Код: plsql
1.
2.
3.
4.
5.
select
extractvalue (XMLType(b.fileblob, 0), '*/ИмяФайла') 
from BLOBFILE b 
--where B.FILENAME like '%OPPF%'
;


у меня две строки в таблице специально для тестов сделал укороченную версию,т.е.
FILENAME like '%OPPF%' -это полная версия xml
FILENAME like '%TEST@%' -это короткая версия xml

extractvalue (XMLType(b.fileblob, 0), '*/ИмяФайла') работает на короткой версии ,а на '%OPPF%' вылетает ошибка
[Error] Execution (2: 15): ORA-31011: сбой разбора XML
ORA-19202: Возникла ошибка при обработке XML
LPX-00200: невозможно выполнить преобразование из кодирования WINDOWS-1251 в ISO-8859-5
Error at line 1
ORA-06512: на "SYS.XMLTYPE", line 265
ORA-06512: на line 1
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371850
wwee12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джонни_Инглишwwee12, а у тебя собственно какая конечная задача?

с внешней системы получать файлы xml (больших размеров) и парсить с него данные в базу
...
Рейтинг: 0 / 0
xml с названием тэгов на русском языке в blob не преобразуется в XMLType
    #39371868
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wwee12у меня две строки в таблице специально для тестов сделал укороченную версию,т.е.
FILENAME like '%OPPF%' -это полная версия xml
FILENAME like '%TEST@%' -это короткая версия xml

extractvalue (XMLType(b.fileblob, 0), '*/ИмяФайла') работает на короткой версии ,а на '%OPPF%' вылетает ошибка
[Error] Execution (2: 15): ORA-31011: сбой разбора XML
ORA-19202: Возникла ошибка при обработке XML
LPX-00200: невозможно выполнить преобразование из кодирования WINDOWS-1251 в ISO-8859-5
Error at line 1
ORA-06512: на "SYS.XMLTYPE", line 265
ORA-06512: на line 1Ну так и найди на чем падает.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / xml с названием тэгов на русском языке в blob не преобразуется в XMLType
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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