В настоящее время у меня есть база данных не-utf-8, но мне нужно создать переменную XMLType с кодировкой utf-8.У меня есть обходной путь, но, похоже, ошибка в Oracle, см. Следующую ссылку: https://forums.oracle.com/forums/thread.jspa?messageID=10238641
... и ошибка поддержки Oracle: 7698684
Ошибка вызывает случайное
ORA-1482: unsupported character set
ORA-6512: at "SYS.XMLTYPE", line 107
Прежде всего, я получаю XMLType с пакетом dbms_xmlgen.Этот XMLType кодируется набором символов БД.
Чтобы преобразовать его в набор символов utf-8, я делаю это так:
- Я преобразую переменную XMLType в переменную BLOB с помощью метода getBlobVal, используя NLS_CHARSET_ID ('UTF8') в качестве параметра
- Я преобразую переменную BLOB обратно в XMLType с помощью метода конструктора XMLType, используя переменную BLOB в качестве первого параметра и NLS_CHARSET_ID ('UTF8') в качестве второго параметра. Это вызывает случайную ошибку: (
Кто-нибудь знает альтернативное решение для этого?
l_xml := dbms_xmlgen.getXMLType(l_ctx);
l_xml_b := l_xml.getBlobVal(C_UTF8_CHARSET_ID);
l_xml := XMLType(l_xml_b, C_UTF8_CHARSET_ID);