Я совершенно новичок в XDB от Oracle, в частности использую его для генерации вывода XML из таблицы базы данных и работаю над приложением, которое перемещается из 9i (Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production) в11g (Oracle Database 11g Enterprise Edition, выпуск 11.2.0.2.0 - 64-разрядная версия).Вот небольшой тестовый пример, который иллюстрирует мою проблему:
select xmlelement("test", test) from (select 'a' test from dual);
Это работает и дает мне:
<test>a</test>
Однако в 11g, если я поменяю 'a' нанедопустимый символ, такой как U + 0013 Я получаю следующую ошибку:
ORA-31061: XDB error: special char to escaped char conversion failed.
Под 9i то же самое работает успешно, без ошибок.
Очевидно, что идеальный ответ должен иметь некоторую проверкучтобы предотвратить попадание управляющих символов в простые символьные данные, которые я пытаюсь преобразовать в XML, но, к сожалению, это выходит за рамки того, что я делаю.
Это то, что испытал кто-то другой, иесли так, могу ли я внести простое изменение в свой сценарий создания XML или мне нужно выполнить какой-либо другой вид очистки?Или просто вручную исправьте проблему в тех редких случаях, когда это происходит (что было бы вполне разумным вариантом для моих нужд).
Большое спасибо.