Разбор XML оракула дает недопустимую ошибку символа - PullRequest
3 голосов
/ 20 августа 2009

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

Проблема, с которой я сталкиваюсь, заключается в том, что «не удалось выполнить синтаксический анализ xml», когда я пытаюсь вставить созданный выше 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-файла вручную, он начал работать нормально. Но я бы хотел, чтобы это работало, не удаляя их.

Ответы [ 2 ]

1 голос
/ 05 января 2011

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

dbms_xmlgen.convert(arg1)
1 голос
/ 10 марта 2010

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

REPLACE(arg1, CHR(13), '');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...