So ändern Zeichensatz der XMLTYPE-variable?

Ich bin derzeit mit nicht-utf-8-DB, aber ich brauche, um zu produzieren XMLType-variable mit der Codierung utf-8. Ich habe ein workaround, aber es scheint zu sein, Fehler in der Oracle finden Sie unter dem folgenden link:
https://forums.oracle.com/forums/thread.jspa?messageID=10238641

...und Support von Oracle Fehler: 7698684

Den Fehler verursacht zufällige

ORA-1482: unsupported character set
ORA-6512: at "SYS.XMLTYPE", line 107

Zuallererst bin ich immer XMLType mit dbms_xmlgen-package. Dass XMLType ist, kodiert mit DB-Zeichen gesetzt werden.

Konvertieren zu utf-8 Zeichensatz habe ich dies so tun:

  • Ich konvertieren XMLType-variable BLOB-variable mit getBlobVal Methode mit NLS_CHARSET_ID
    ('UTF8') als parameter
  • Ich konvertiert BLOB-variable zurück zu XMLType mit XMLType-Konstruktor-Methode mithilfe von BLOB-variable als ersten parameter, und NLS_CHARSET_ID
    ('UTF8') als zweiten parameter. Dies bewirkt, dass zufällige Fehler 🙁

Weiß jemand eine alternative Lösung für dieses Problem?

  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);
Wo haben Sie festgestellt, dass die definition für XMLType.getBlobVal()? in der Dokumentation wird nicht aufgeführt, da mit einem parameter
Zumindest ist es hier geschrieben: docs.oracle.com/cd/B19306_01/appdev.102/b14259/xdb04cre.htm
Es scheint undokumentierte (vermutlich Dokumentation bug) aber du hast Recht, es funktioniert. Welche version Sie ausführen?
By the way, ich werde nicht schreiben Sie eine Antwort Recht jetzt, da ich nicht die Zeit haben, finden Sie Referenzen, aber ich bin mir ziemlich sicher, dass eine XMLType ist Abstrakt und nicht mit einem Zeichensatz (wie ein DATE nicht ein format haben). Der Zeichensatz wird gewählt, wenn Sie verwandeln den XMLType in lesbare/ - format exportierbar.
11g R2 (mich nicht erinnern, ausführliche version, kann aber morgen zu überprüfen). XMLType hält eigenen Zeichensatz Informationen. Ich bin Recht absolut sicher, denn ich bin zurück von XMLType variable throught 11g native web-services und wenn ich meine utf-8 Kodieren Sachen, dann wird es wirklich macht web-service mit utf-8! Ansonsten ist es nur die Renditen von xml über web-service-codiert mit dem DB-Zeichen gesetzt werden.

InformationsquelleAutor Jokke Heikkilä | 2012-03-28

Schreibe einen Kommentar