Akzente setzen mit COMPOSE und UNISTR

Die Funktion COMPOSE gibt einen NVARCHAR2-String zurück, der normalerweise Unicode-basiert ist. Verwendet man diese Zeichen lokal, wird die Datenbank versuchen, die Unicode-Zeichen in den lokalen Zeichensatz umzuwandeln, wenn das Ergebnis implizit mit der Funktion TO_CHAR verarbeitet wird. Nicht alle Zeichen lassen sich auf diese Weise zuordnen, und es gibt einige Zeichenkombinationen, die in COMPOSE nicht funktionieren, da das Unicode-Konsortium sie noch nicht für den von der Oracle-Datenbank verwendeten Level definiert hat.

Um schnell zu überprüfen, wie Zeichen in einer bestimmten Umgebung aussehen, kann man ein Script ähnlich dem folgenden ausführen und so feststellen, wie die kombinierten Zeichen ausgegeben werden. Eventuell muss man die Einstellungen von NLS_LANG überprüfen, um sicherzustellen, dass diese Zeichen korrekt zurückgegeben werden:


Interessant ist auch noch ein kurzes PL/SQL-Script, das COMPOSE und UNISTR zur Erzeugung eines Effekts einsetzt, den viele SMS-Benutzer auf der ganzen Welt verwenden, um lesbaren Text zu erzeugen, der schwierig zu scannen ist, da er zufällige Akzent-Versionen von Zeichen verwendet. DBMS_RANDOM wird benutzt, um nach Zufallsprinzip ein Kombinationszeichen auszuwählen, das mit unterschiedlichen Buchstaben verwendet werden kann. Diese werden mithilfe von SQL kombiniert und zurückkonvertiert, um eine Ausgab in ANSI/Latin-1 zu erzeugen. Der Verweis auf Spalte ENAME der Tabelle EMP ist in diesem Script hart codiert.


Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Akzente setzen mit COMPOSE und UNISTR

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *