Zeichensatz abfragen

Jede Oracle-Datenbank kodiert den Inhalt - also die Daten - auf unterschiedliche Art. Je nach dem, ob es sich um ein Textfeld handelt, werden Buchstaben eben auch unterschiedlich in der Datenbank gespeichert.

Eine kurze und knappe Aussage bekommt man (nach der Anmeldung an der Datenbank) so: SQL> SELECT value$ FROM sys.props$ WHERE name='NLS_CHARACTERSET';

VALUE$ ------------ WE8MSWIN1252

Vorzugsweise sollte jedoch die Ausgabe eher "AL32UTF8" sein, da nicht unbedingt alle Daten mit dem alten Windows-Zeichensatz kodiert sind.

Damit ist der allgemeine Zeichensatz erfragt und geklärt. Die einzelnen Zeichen werden jedoch dann schon wieder anders kodiert. Eine umfassende Abfrage liefert folgende Abfrage: SQL> COLUMN parameter FORMAT A30 COLUMN value FORMAT A30 SET PAGESIZE 100 SELECT * FROM NLS_DATABASE_PARAMETERS ORDER BY parameter;

PARAMETER VALUE ------------------------------ ------------------------------ NLS_CALENDAR GREGORIAN NLS_CHARACTERSET WE8MSWIN1252 NLS_COMP BINARY NLS_CURRENCY ? NLS_DATE_FORMAT DD.MM.RR NLS_DATE_LANGUAGE GERMAN NLS_DUAL_CURRENCY ? NLS_ISO_CURRENCY GERMANY NLS_LANGUAGE GERMAN NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CHARACTERSET UTF8 NLS_NCHAR_CONV_EXCP FALSE NLS_NUMERIC_CHARACTERS ,. NLS_RDBMS_VERSION 12.1.0.2.0 NLS_SORT GERMAN NLS_TERRITORY GERMANY NLS_TIME_FORMAT HH24:MI:SSXFF NLS_TIMESTAMP_FORMAT DD.MM.RR HH24:MI:SSXFF NLS_TIMESTAMP_TZ_FORMAT DD.MM.RR HH24:MI:SSXFF TZR NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR

20 rows selected.