2009-08-20 13 views
3

Я использую утилиту экспорта Oracle 11G sql для преобразования табличных данных в XML. Для этого я использовал кодировку utf-8. Специальные символы (0x13), которые я вижу в DB как квадратные квадраты, вошли в xml как есть. Чтобы избавиться от этого специального символа, нужно ли выбрать другую кодировку в Sql Developer?oracle xml parsing дает недопустимую ошибку символа

Проблема, с которой я столкнулась, заключается в том, что «xml parsing failed» при попытке вставить указанный выше созданный xml-файл в другую таблицу Oracle (используя функцию xmltable). Я получаю следующую ошибку.

ORA-31011: XML parsing failed 
ORA-19202: Error occurred in XML processing 
LPX-00216: invalid character 0 (0x13) 
Error at line 10682 
ORA-06512: at "XDB.DBMS_XMLSCHEMA_INT", line 0 
ORA-06512: at "XDB.DBMS_XMLSCHEMA", line 26 
ORA-06512: at line 9 

Если я удалю специальные символы из xml-файла вручную, он начал работать нормально. Но я бы хотел, чтобы это работало, не удаляя их.

ответ

1

Вы можете удалить специальный символ с помощью функции REPLACE - просто замените CHR (13) через пробел:

REPLACE(arg1, CHR(13), ''); 
+0

Бесполезно без списка плохих персонажей – Superdooperhero

1

Вы можете удалить все Spl символы с помощью Oracle поставляется функция dbms_xmlgen.convert(...)

dbms_xmlgen.convert(arg1) 
+0

Не работает для меня. – Superdooperhero

Смежные вопросы