Oracle: Unicode code point eines Zeichens

sceppi

Mitglied
Hallo,
ich muss in Oracle PL/SQL in einer Procedur Zeichenketten auf "ungültige" Zeichen durchsuchen und ggf. ersetzen.
Zum Beispiel aus Ä ein AE oder aus  ein A machen. Am besten geht das meiner Meinung nach, in dem ich die Zeichen als Unicode Code Point betrachte, da sich so auch mehrer Bereiche zusammen fassen lassen (Code 192-194 für Á,À und Â). In Java gibt es die Methode codePointAt für Character.
Existiert so etwas ähnliches auch in PL/SQL oder hat jemand eine andere Idee, wie ich das Problem effektiv lösen könnte?
Besten Dank
sceppi
 
Hi Sceppi,

die Frage warum du sowas machen musst frage ich an dieser Stelle nicht. Immerhin veränderst du damit den Sinn bzw. die Korrektheit der Daten.
Eine konkrete Lösung habe ich leider nicht, höchstens ein paar Ansätze wo man weiter suchen könnte:

1.) Das Oracle PL/SQL Package UTL_I18N hat Funktionen wie z.B. ESCAPE_REFERENCE.

2.) Oracle Text erkennt die unterschiedlichen Zeichen und würde bei der Suche nach einem A auch ein Ä oder  finden. Allerdings ist Oracle Text recht komplex und mit der Cartrige API implementiert, weshalb ich nicht genau sagen kann wie und ob man an die Funktionen ran kommt. Am besten mal nach "Oracle Text Reference 10g" googeln.
http://download.oracle.com/docs/cd/B19306_01/text.102/b14218/toc.htm

3.) Oder du machst es weiterhin mit Java, allerdings in der Datenbank. Wie man Java Stored Procedures schreibt kannst du hier im Forum suchen. Ich meine Thomas Darimont hat dazu schon Beiträge verfasst.
 
Danke für deine Hilfe und deine Ideen,
mit den Java stored Procedures ist das so ein Problem, da die Datenbank eine 10g ist, ich aber Elemente aus dem aktuellen Java benötige und 10g geht nur mit dem alten.
Aber egal.
Ich habe eine andere Lösung, bei der ich mir allerdings nicht sicher bin, ob es noch Ausnahmen gibt, die ich nicht abfange. In PL/SQL gibt es die Funktion ASCII, und ich vergleiche dann halt anhand der Codes und schreibe einen neuen ASCII-Code, der dann mit der CHR Funktion wieder Buchstaben daraus macht.
sceppi
 
Zurück