ORA-31011: XML-parsing fehlgeschlagen - ungültige Zeichen (oracle-sql)

Bin ich produziert ein XML-Dokument mithilfe von SQL auf einer Oracle 11g Datenbank. Aber ich habe ein problem mit einem Datenbank-Feld, weil das Feld "Titel" enthält viele Charaktere, von denen einige XML-sehen ist, als ungültig, ich versuche, die unter Anweisung zu fangen so viele wie möglich und konvertieren Sie Sie auf NULL.

REGEXP_REPLACE (title, '’|£|&|*|@|-|>|/|<|;|\', '', 1, 0, 'i') as title

Ich bin noch immer der parse-problem, so weiß ich, muss es mehr ungültige Zeichen, die ich verpasst habe. Ich weiß, es ist Versagen auf diesem Feld als wenn ich das Feld in einen string 'Titel' (wie unten), wird das Dokument geparst und es funktioniert gut.

REGEXP_REPLACE ('title', '’|£|&|*|@|-|>|/|<|;|\', '', 1, 0, 'i') as title

Ich bin mit der XML-version "1.0" encoding="UTF-8", gibt es einen einfachen Weg, um dieses oder muss ich zum suchen der Datensätze, die fehlerhaft sind, das könnte einer von 2 Millionen Datensätze. Das Feld Titel enthält Titel aus der ganzen Welt, könnte ich REGEXP_REPLACE um einen Bereich von Zeichen zwischen char(32) und können sagen, char(255) alles, was nicht in diesem Bereich ersetzen mit NULL.

ODER gibt es eine andere Lösung.

vielen Dank im Voraus Jungs

InformationsquelleAutor Shaun Kinnair | 2016-11-08

Schreibe einen Kommentar