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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie sich überlegt nur, die Zeichen, die Sie wollen? Ich weiß nicht, was Sie sind, sondern so etwas wie diese
Der reguläre Ausdruck sucht alle Zeichen, die keine zahlen, Zeichen oder Leerzeichen, Komma, Punkt oder Ausrufezeichen.
InformationsquelleAutor Gordon Linoff
Nur ungültige Zeichen in XML sind
&
,<
und>
(sowie"
oder'
Attribute).Können Sie entkommen, wie Zeichen, die mit einer Oracle-Funktion
Beispiel:
Details: https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_xmlgen.htm#i1013100
InformationsquelleAutor Wernfried Domscheit