Einzelne NLS-Parameter
Viele einzelne NLS-Parameter sind verfügbar.
Siehe:
-
Oracle Database Globalization Support Guide enthält weitere Informationen zum Einrichten einer Globalization-Supportumgebung
Informationen zum Gebietsschema und zum Parameter NLS_LANG
Eine Gebietsschema ist eine sprachliche und kulturelle Umgebung, in der ein System oder die Anwendung ausgeführt wird. Die einfachste Möglichkeit, ein Gebietsschema für die Oracle Database-Software anzugeben, besteht darin, den Parameter NLS_LANG festzulegen.
Der Parameter NLS_LANG legt die Standardwerte der Parameter NLS_LANGUAGE und NLS_TERRITORY sowohl für die Serversession (z.B. die Verarbeitung von SQL-Anweisungen) als auch für die Clientanwendung fest (z.B. die Formatierung in Oracle Database-Tools anzeigen). Der Parameter NLS_LANG legt außerdem den Zeichensatz fest, der in der Client-Anwendung beim Eingeben oder Anzeigen von Daten verwendet wird.
Der Standardwert von NLS_LANG wird während der Installation der Datenbank festgelegt. Sie können die Anweisung ALTER SESSION verwenden, um die Werte von NLS-Parametern, einschließlich der Werte, die von NLS_LANG für die SESSION festgelegt wurden, zu ändern. Beachten Sie jedoch, dass die NLS-Einstellungen in der Client-Umgebung nur über den Client geändert werden können.
Siehe:
-
Oracle Database Globalization Support Guide für weitere Informationen zum Angeben eines Gebietsschemas über den Parameter
NLS_LANG -
Oracle Database Globalization Support Guide: Informationen zu Sprachen, Gebieten, Zeichensätzen und anderen Gebietsschemadaten, die von Oracle Database unterstützt werden
Informationen zum Parameter NLS_LANGUAGE
Dieser Parameter gibt die Standardsprache der Datenbank an.
Gibt an: Standardsprache der Datenbank. Standardkonventionen für:
-
Sprache für Server-Meldungen
-
Sprache für Namen und Abkürzungen von Tagen und Monaten, die in den SQL-Funktionen TO_CHAR und TO_DATE angegeben werden
-
Symbole für Äquivalente von AM, PM, AD und BC in der Standardsprache
-
Standardsortierung für Zeichendaten, wenn die Klausel ORDER BY angegeben wird
-
Schreibrichtung
-
Bestätigende und negative Antwortfolgen (z.B. JA oder NEIN)
Zulässige Werte: Jeder von Oracle unterstützte Sprachname. Eine Liste finden Sie im Handbuch Oracle Database Globalization Support Guide.
Standardwert: Festgelegt durch NLS_LANG, beschrieben in "Info zum Gebietsschema und zum Parameter NLS_LANG".
Legt Standardwerte fest von:
-
NLS_DATE_LANGUAGE, beschrieben in "Info zum Parameter NLS_DATE_LANGUAGE".
-
NLS_SORT, beschrieben in "Info zum Parameter NLS_SORT".
Beispiel 7-1 zeigt, wie die Festlegung von NLS_LANGUAGE auf ITALIAN und GERMAN auf Server-Meldungen und Monatsabkürzungen auswirkt.
Um dieses Beispiel in SQL Developer zu testen, geben Sie die Anweisungen und Abfragen in das Arbeitsblatt ein. Informationen zum Arbeitsblatt finden Sie unter "Abfragen in SQL Developer ausführen". Die hier gezeigten Ergebnisse stammen aus SQL*Plus. Ihr Format unterscheidet sich in SQL Developer geringfügig.
Beispiel 7-1: Auswirkung von NLS_LANGUAGE auf Server-Meldungen und Monatsabkürzungen
-
Notieren Sie den aktuellen Wert von NLS_LANGUAGE.
-
Wenn der Wert in Schritt 1 nicht
ITALIANlautet, ändern Sie ihn:ALTER SESSION SET NLS_LANGUAGE=ITALIAN; -
Fragen Sie eine nicht vorhandene Tabelle ab:
SELECT * FROM nonexistent_table;Ergebnis:
SELECT * FROM nonexistent_table * ERROR at line 1: ORA-00942: tabella o vista inesistente -
Führen Sie folgende Abfrage aus:
SELECT LAST_NAME, HIRE_DATE FROM EMPLOYEES WHERE EMPLOYEE_ID IN (111, 112, 113);Ergebnis:
LAST_NAME HIRE_DATE ------------------------- --------- Sciarra 30-SET-97 Urman 07-MAR-98 Popp 07-DIC-99 3 rows selected. -
Ändern Sie den Wert von NLS_LANGUAGE in
GERMAN:ALTER SESSION SET NLS_LANGUAGE=GERMAN; -
Wiederholen Sie die Abfrage aus Schritt 3.
Ergebnis:
SELECT * FROM nonexistent_table * ERROR at line 1: ORA-00942: Tabelle oder View nicht vorhanden -
Wiederholen Sie die Abfrage aus Schritt 4.
Ergebnis:
LAST_NAME HIRE_DATE ------------------------- --------- Sciarra 30-SEP-97 Urman 07-MRZ-98 Popp 07-DEZ-99 3 rows selected. - Legen Sie NLS_LANGUAGE auf den Wert fest, den Sie in Schritt 1 hatten.
Siehe:
-
Oracle Database Globalization Support Guide für weitere Informationen zum NLS_LANGUAGE-Parameter
Info zum Parameter NLS_TERRITORY
Dieser Parameter gibt Standardkonventionen für Datumsformat, Zeitstempelformat, Dezimal- und Gruppentrennzeichen, lokales Währungssymbol, ISO-Währungssymbol und Dual-Währungssymbol an.
Gibt an: Standardkonventionen für:
-
Datumsformat
-
Zeitstempelformat
-
Dezimalzeichen und Gruppentrennzeichen
-
Lokales Währungssymbol
-
ISO-Währungssymbol
-
Duales Währungssymbol
Annehmbare Werte: Ein Regionsname, den Oracle unterstützt. Eine Liste finden Sie im Handbuch Oracle Database Globalization Support Guide.
Standardwert: Festgelegt durch NLS_LANG, beschrieben in "Info zum Gebietsschema und zum Parameter NLS_LANG".
Legt Standardwerte fest von:
-
NLS_DATE_FORMAT, beschrieben in "Info zum Parameter NLS_DATE_FORMAT".
-
NLS_TIMESTAMP_FORMAT und NLS_TIMESTAMP_TZ_FORMAT werden in "Parameter NLS_TIMESTAMP_FORMAT und NLS_TIMESTAMP_TZ_FORMAT" beschrieben.
-
NLS_NUMERIC_CHARACTERS, beschrieben in "Info zum Parameter NLS_NUMERIC_CHARACTERS". -
NLS_CURRENCY, beschrieben in "Info zum Parameter NLS_CURRENCY".
-
NLS_ISO_CURRENCY, beschrieben in "Info zum Parameter NLS_ISO_CURRENCY".
-
NLS_DUAL_CURRENCY, beschrieben in "Info zum Parameter NLS_DUAL_CURRENCY"
Beispiel 7-2 zeigt, wie sich die Festlegung von NLS_TERRITORY auf JAPAN und AMERICA auf das Währungssymbol auswirkt.
Um dieses Beispiel in SQL Developer zu testen, geben Sie die Anweisungen und Abfragen in das Arbeitsblatt ein. Informationen zum Arbeitsblatt finden Sie unter "Abfragen in SQL Developer ausführen". Die hier gezeigten Ergebnisse stammen aus SQL*Plus. Ihr Format unterscheidet sich in SQL Developer geringfügig.
Beispiel 7-2: NLS_TERRITORY wirkt sich auf Währungssymbol aus
-
Notieren Sie den aktuellen Wert von NLS_TERRITORY.
-
Wenn der Wert in Schritt 1 nicht
JAPANlautet, ändern Sie ihn:ALTER SESSION SET NLS_TERRITORY=JAPAN; -
Führen Sie folgende Abfrage aus:
SELECT TO_CHAR(SALARY,'L99G999D99') SALARY FROM EMPLOYEES WHERE EMPLOYEE_ID IN (100, 101, 102);Ergebnis:
SALARY -------------------- ©24,000.00 ©17,000.00 ©17,000.00 3 rows selected. -
Ändern Sie den Wert von
NLS_TERRITORYinAMERICA:ALTER SESSION SET NLS_TERRITORY=AMERICA; -
Wiederholen Sie die Abfrage aus Schritt 3.
Ergebnis:
SALARY -------------------- $24,000.00 $17,000.00 $17,000.00 3 rows selected. - Stellen Sie
NLS_TERRITORYwieder auf den Wert ein, der in Schritt 1 angezeigt wird.
Siehe:
-
Oracle Database Globalization Support Guide für weitere Informationen zum NLS_TERRITORY-Parameter
Informationen zum Parameter NLS_DATE_FORMAT
Dieser Parameter gibt das Standarddatumsformat an, das mit den Funktionen TO_CHAR und TO_DATE verwendet werden soll.
Gibt an: Standarddatumsformat zur Verwendung mit den Funktionen TO_CHAR und TO_DATE (die in "Konvertierungsfunktionen in Abfragen verwenden" eingeführt werden).
Zulässige Werte: Jede gültige Formatmaske für Datum/Uhrzeit. Beispiel:
NLS_DATE_FORMAT='MM/DD/YYYY'
Informationen zu Datetime-Formatmodellen finden Sie in der Oracle Database SQL Language Reference.
Standardwert: Festgelegt durch NLS_TERRITORY, beschrieben in "Info zum Parameter NLS_TERRITORY".
Das Standarddatumsformat entspricht möglicherweise nicht der Konvention, die in einem vorgegebenen Gebiet verwendet wird. Um Datumswerte in lokalisierten Formaten abzurufen, können Sie die Formate 'DS' (kurzes Datumsformat) und 'DL' (langes Datumsformat) verwenden. Beispiel 7-3 zeigt, wie die Festlegung von NLS_TERRITORY auf AMERICA und FRANCE auf das Standarddatumsformat, das kurze Datums- und das lange Datumsformat auswirkt. Beispiel 7-4 ändert den Wert von NLS_DATE_FORMAT und überschreibt den von NLS_TERRITORY festgelegten Standardwert.
Um die Beispiele in SQL Developer zu testen, geben Sie die Anweisungen und Abfragen in das Arbeitsblatt ein. Informationen zum Arbeitsblatt finden Sie unter "Abfragen in SQL Developer ausführen". Die hier gezeigten Ergebnisse stammen aus SQL*Plus. Ihr Format unterscheidet sich in SQL Developer geringfügig.
Beispiel 7-3: NLS_TERRITORY wirkt sich auf Datumsformate aus
-
Notieren Sie den aktuellen Wert von NLS_TERRITORY.
-
Wenn der Wert in Schritt 1 nicht
AMERICAlautet, ändern Sie ihn:ALTER SESSION SET NLS_TERRITORY=AMERICA; -
Führen Sie folgende Abfrage aus:
SELECT hire_date "Default", TO_CHAR(hire_date,'DS') "Short", TO_CHAR(hire_date,'DL') "Long" FROM employees WHERE employee_id IN (111, 112, 113);Ergebnis:
Default Short Long --------- ---------- ----------------------------- 30-SEP-05 9/30/2005 Friday, September 30, 2005 07-MAR-98 3/7/2006 Tuesday, March 07, 2006 07-DEC-99 12/7/2007 Friday, December 07, 2007 3 rows selected. -
Ändern Sie den Wert von NLS_TERRITORY in
FRANCE:ALTER SESSION SET NLS_TERRITORY=FRANCE; -
Wiederholen Sie die Abfrage aus Schritt 3.
Ergebnis:
Default Short Long -------- ---------- --------------------------- 30/09/05 30/09/2005 friday 30 september 2005 07/03/06 07/03/2006 tuesday 7 march 2006 07/12/07 07/12/2007 friday 7 december 2007 3 rows selected.(Um die Namen der Tage und Monate in Französisch zu erhalten, müssen Sie entweder NLS_LANGUAGE oder NLS_DATE_LANGUAGE auf
FRENCHfestlegen, bevor sie die Abfrage ausführen.) - Stellen Sie NLS_TERRITORY auf den Wert ein, der in Schritt 1 angezeigt worden ist.
Beispiel 7-4: NLS_DATE_FORMAT überschreibt NLS_TERRITORY
-
Notieren Sie die aktuellen Werte von NLS_TERRITORY und NLS_DATE_FORMAT.
-
Wenn der Wert für NLS_TERRITORY in Schritt 1 nicht
AMERICAist, ändern Sie diesen:ALTER SESSION SET NLS_TERRITORY=AMERICA; -
Wenn der Werte von NLS_DATE_FORMAT in Schritt 1 nicht
'Day Month ddth'lautet, ändern Sie ihn:ALTER SESSION SET NLS_DATE_FORMAT='Day Month ddth'; -
Führen Sie diese Abfrage (aus dem vorherigen Beispiel, Schritt 3) aus:
SELECT hire_date "Default", TO_CHAR(hire_date,'DS') "Short", TO_CHAR(hire_date,'DL') "Long" FROM employees WHERE employee_id IN (111, 112, 113);Ergebnis:
Default Short Long ------------------------ ---------- ----------------------------- Friday September 30th 9/30/2005 Tuesday, September 30, 2005 Tuesday March 07th 3/7/2006 Saturday, March 07, 2006 Friday December 07th 12/7/2007 Tuesday, December 07, 2007 3 rows selected. - Setzen Sie NLS_TERRITORY und NLS_DATE_FORMAT auf die Werte, die sie in Schritt 1 hatten.
Siehe:
-
Oracle Database Globalization Support Guide (Informationen zum Parameter NLS_DATE_FORMAT)
-
Oracle Database SQL Language Reference für weitere Informationen zur Funktion TO_CHAR
-
Oracle Database SQL Language Reference für weitere Informationen zur Funktion TO_DATE
Informationen zum Parameter NLS_DATE_LANGUAGE
Dieser Parameter gibt die Sprache für Namen und Abkürzungen von Tagen und Monaten an, die erzeugt werden durch: SQL-Funktionen TO_CHAR und TO_DATE, das Standarddatumsformat (festgelegt durch NLS_DATE_FORMAT) und Symbole für die Standardsprachenäquivalente AM, PM, AD und BC.
Gibt an: Die Sprache für Namen und Abkürzungen von Tagen und Monaten, die von folgenden Funktionen erstellt werden:
-
SQL-Funktionen TO_CHAR und TO_DATE (siehe Kapitel "Konvertierungsfunktionen in Abfragen verwenden")
-
Standarddatumsformat (festgelegt durch den Parameter NLS_DATE_FORMAT; siehe Abschnitt "Info zum NLS_DATE_FORMAT-Parameter")
-
Symbole für Äquivalente von AM, PM, AD und BC in der Standardsprache
Zulässige Werte: Jeder von Oracle unterstützte Sprachname. Eine Liste finden Sie im Handbuch Oracle Database Globalization Support Guide.
Standardwert: Festgelegt durch NLS_LANGUAGE; siehe Beschreibung unter "Info zum Parameter NLS_LANGUAGE".
Beispiel 7-5 zeigt, wie sich die Einstellung von NLS_DATE_LANGUAGE auf FRENCH und SWEDISH auf das angezeigte Systemdatum auswirkt.
Um dieses Beispiel in SQL Developer zu testen, geben Sie die Anweisungen und Abfragen in das Arbeitsblatt ein. Informationen zum Arbeitsblatt finden Sie unter "Abfragen in SQL Developer ausführen". Die hier gezeigten Ergebnisse stammen aus SQL*Plus. Ihr Format unterscheidet sich in SQL Developer geringfügig.
Beispiel 7-5: NLS_DATE_LANGUAGE wirkt sich auf das angezeigte SYSDATE aus
-
Notieren Sie den aktuellen Wert von NLS_DATE_LANGUAGE.
-
Wenn der Wert von NLS_DATE_LANGUAGE in Schritt 1 nicht
FRENCHist, ändern Sie den Wert:ALTER SESSION SET NLS_DATE_LANGUAGE=FRENCH; -
Führen Sie diese Abfrage aus:
SELECT TO_CHAR(SYSDATE, 'Day:Dd Month yyyy') "System Date" FROM DUAL;Ergebnis:
System Date -------------------------- Vendredi:28 December 2012 -
Ändern Sie den Wert von NLS_DATE_LANGUAGE in
SWEDISH:ALTER SESSION SET NLS_DATE_LANGUAGE=SWEDISH; -
Wiederholen Sie die Abfrage aus Schritt 3.
Ergebnis:
System Date ------------------------- Fredag :28 December 2012 - Legen Sie
NLS_DATE_LANGUAGEwieder auf den Wert fest, der in Schritt 1 angezeigt worden ist.
Siehe:
-
Oracle Database Globalization Support Guide für weitere Informationen zum NLS_DATE_LANGUAGE-Parameter
-
Oracle Database SQL Language Reference für weitere Informationen zur Funktion TO_CHAR
-
Oracle Database SQL Language Reference für weitere Informationen zur Funktion "y"
Info zu NLS_TIMESTAMP_FORMAT- und NLS_TIMESTAMP_TZ_FORMAT-Parametern
Dieser Parameter gibt das Standarddatumsformat für TIMESTAMP audiotape und TIMESTAMP WITH LOCAL TIME ZONEaudiotapeTIMESTAMP WITH LOCAL TIME ZONEaudiotape an.
Angeben: Standarddatumsformat für:
-
TIMESTAMP-Audiotape
-
TIMESTAMP MIT LOKALER ZEIT ZONEaudiotape
Zulässige Werte: Jede gültige Formatmaske für Datum/Uhrzeit. Beispiel:
NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH:MI:SS.FF'
NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH:MI:SS.FF TZH:TZM'
Informationen zu Datetime-Formatmodellen finden Sie in der Oracle Database SQL Language Reference.
Standardwert: Festgelegt durch NLS_TERRITORY, beschrieben in "Info zum Parameter NLS_TERRITORY".
Siehe:
-
Oracle Database Globalization Support Guide für weitere Informationen zum Parameter NLS_TIMESTAMP_FORMAT
-
Oracle Database Globalization Support Guide für weitere Informationen zum Parameter NLS_TIMESTAMP_TZ_FORMAT
-
Oracle Database Globalization Support Guide (Informationen zu Datentypen "Datum/Uhrzeit" und "TIME ZONE")
-
Oracle Database SQL Language Reference (Informationen zum TIMESTAMP-Audiotape)
-
Oracle Database SQL Language Reference (Informationen zum Datentyp TIMESTAMP WITH LOCAL TIME ZONE)
Info zu dem Parameter NLS_CALENDAR
Dieser Parameter gibt das Kalendersystem für die Datenbank an.
Gibt an: Kalendersystem für die Datenbank.
Zulässige Werte: Ein beliebiges von Oracle unterstütztes Kalendersysteme. Eine Liste finden Sie im Handbuch Oracle Database Globalization Support Guide.
Standardwert: Gregorian
Beispiel 7-6 zeigt, wie sich die Einstellung von NLS_CALENDAR auf 'English Hijrah' und Gregorian auf das angezeigte Systemdatum auswirkt.
Um dieses Beispiel in SQL Developer zu testen, geben Sie die Anweisungen und Abfragen in das Arbeitsblatt ein. Informationen zum Arbeitsblatt finden Sie unter "Abfragen in SQL Developer ausführen". Die hier gezeigten Ergebnisse stammen aus SQL*Plus. Ihr Format unterscheidet sich in SQL Developer geringfügig.
Beispiel 7-6: NLS_CALENDAR wirkt sich auf das angezeigte SYSDATE aus
-
Beachten Sie den aktuellen Wert von NLS_CALENDAR.
-
Wenn der Wert von NLS_CALENDAR in Schritt 1 nicht
'English Hijrah'lautet, ändern Sie ihn:ALTER SESSION SET NLS_CALENDAR='English Hijrah'; -
Führen Sie folgende Abfrage aus:
SELECT SYSDATE FROM DUAL;Ergebnis:
SYSDATE ------------------------- 17 Safar 1434 -
Ändern Sie den Wert von NLS_CALENDAR in
'Gregorian':ALTER SESSION SET NLS_CALENDAR='Gregorian'; -
Führen Sie folgende Abfrage aus:
SELECT SYSDATE FROM DUAL;Ergebnis:
SYSDATE --------- 31-DEC-12 - Legen Sie NLS_CALENDAR auf den Wert fest, der in Schritt 1 angezeigt worden ist.
Siehe:
-
Oracle Database Globalization Support Guide für weitere Informationen zum Parameter
NLS_CALENDAR
Informationen zum Parameter NLS_NUMERIC_CHARACTERS
Dieser Parameter gibt das Dezimalzeichen (trennt bei einer Zahl die Ganzzahl- und Dezimalstellen einer Zahl) und das Gruppentrennzeichen (trennt beispielsweise Ganzzahlengruppen, um Tausende und Millionen voneinander anzuzeigen) an. Das Gruppentrennzeichen ist das Zeichen, das von dem numerischen Formatelement G zurückgegeben wird
Gibt an: Das Dezimalzeichen (trennt bei einer Zahl die Ganzzahl und die Dezimalstellen einer Zahl) und Gruppentrennzeichen (trennt Ganzzahlengruppen, z.B. Tausende und Millionen). Das Gruppentrennzeichen ist das Zeichen, das von dem numerischen Formatelement G zurückgegeben wird
Zulässige Werte: Zwei beliebige ein-Byte-Zeichen mit Ausnahme der Folgenden:
-
Numerische Zeichen
-
Plus (+)
-
Minus (-)
-
Kleiner als (<)
-
Größer als (>)
Standardwert: Festgelegt durch NLS_TERRITORY; Beschreibung unter "Informationen zum Parameter NLS_TERRITORY".
In einer SQL-Anweisung können Sie eine Zahl wie folgt angeben:
-
Numerisches Literal
Ein numerisches Literal wird nicht in Anführungszeichen gesetzt, als Dezimalzeichen wird immer der Punkt (.) verwendet, und es enthält niemals ein Gruppentrennzeichen.
-
Textliteral
Ein Textliteral wird in einfache Anführungszeichen gesetzt. Es wird, falls erforderlich, den aktuellen NLS-Einstellungen entsprechend implizit oder explizit in eine Zahl konvertiert.
Beispiel 7-7 zeigt, wie zwei unterschiedliche NLS_NUMERIC_CHARACTERS-Einstellungen das angezeigte Ergebnis der gleichen Abfrage beeinflussen.
Um dieses Beispiel in SQL Developer zu testen, geben Sie die Anweisungen und Abfragen in das Arbeitsblatt ein. Informationen zum Arbeitsblatt finden Sie unter "Abfragen in SQL Developer ausführen". Die hier gezeigten Ergebnisse stammen aus SQL*Plus. Ihr Format unterscheidet sich in SQL Developer geringfügig.
Beispiel 7-7: NLS_NUMERIC_CHARACTERS wirkt sich auf Dezimalzeichen und Gruppentrennzeichen aus
-
Beachten Sie den aktuellen Wert von NLS_NUMERIC_CHARACTERS.
-
Wenn der Wert von NLS_NUMERIC_CHARACTERS in Schritt 1 nicht den Wert
",."(Dezimalzeichen ist ein Komma und Gruppentrennzeichen ist ein Punkt) aufweist, ändern Sie ihn mit dem folgenden Befehl:ALTER SESSION SET NLS_NUMERIC_CHARACTERS=",."; -
Führen Sie folgende Abfrage aus:
SELECT TO_CHAR(4000, '9G999D99') "Number" FROM DUAL;Ergebnis:
Number --------- 4.000,00 -
Ändern Sie den Wert von NLS_NUMERIC_CHARACTERS in den Wert
",."(Dezimalzeichen ist der Punkt und Gruppentrennzeichen ist Komma):ALTER SESSION SET NLS_NUMERIC_CHARACTERS=".,"; -
Führen Sie folgende Abfrage aus:
SELECT TO_CHAR(4000, '9G999D99') "Number" FROM DUAL;Ergebnis:
Number --------- 4,000.00 - Stellen Sie NLS_NUMERIC_CHARACTERS auf den Wert ein, den Sie in Schritt 1 angezeigt haben.
Siehe:
-
Oracle Database Globalization Support Guide für weitere Informationen zum NLS_NUMERIC_CHARACTERS-Parameter
Informationen zum Parameter NLS_CURRENCY
Dieser Parameter gibt das lokale Währungssymbol an (die Zeichenfolge, die vom numerischen Formatelement L zurückgegeben wird).
Legt fest: Lokales Währungssymbol (die Zeichenfolge, die vom numerischen Formatelement L zurückgegeben wird).
Zulässige Werte: Jede gültige Währungssymbol-Zeichenfolge.
Standardwert: Festgelegt durch NLS_TERRITORY, beschrieben in "Info zum Parameter NLS_TERRITORY".
In Beispiel 7-8 wird der Wert von NLS_CURRENCY geändert, sodass der Standardwert von NLS_TERRITORY außer Kraft gesetzt wird. Um dieses Beispiel in SQL Developer zu testen, geben Sie die Anweisungen und Abfragen in das Arbeitsblatt ein. Informationen zum Arbeitsblatt finden Sie unter "Abfragen in SQL Developer ausführen". Die hier gezeigten Ergebnisse stammen aus SQL*Plus. Ihr Format unterscheidet sich in SQL Developer geringfügig.
Beispiel 7-8: NLS_CURRENCY überschreibt NLS_TERRITORY
-
Notieren Sie die aktuellen Werte von NLS_TERRITORY und NLS_CURRENCY.
-
Wenn der Wert für NLS_TERRITORY in Schritt 1 nicht
AMERICAist, ändern Sie diesen:ALTER SESSION SET NLS_TERRITORY=AMERICA; -
Führen Sie diese Abfrage aus:
SELECT TO_CHAR(salary, 'L099G999D99') "Salary" FROM EMPLOYEES WHERE salary > 13000;Ergebnis:
Salary --------------------- $024,000.00 $017,000.00 $017,000.00 $014,000.00 $013,500.00 -
Ändern Sie den Wert von NLS_CURRENCY in
'©':ALTER SESSION SET NLS_CURRENCY='©'; -
Führen Sie diese Abfrage aus:
SELECT TO_CHAR(salary, 'L099G999D99') "Salary" FROM EMPLOYEES WHERE salary > 13000;Ergebnis:
Salary --------------------- ©024,000.00 ©017,000.00 ©017,000.00 ©014,000.00 ©013,500.00 - Setzen Sie NLS_TERRITORY und NLS_CURRENCY auf die Werte, die sie in Schritt 1 hatten.
Siehe:
-
Oracle Database Globalization Support Guide für weitere Informationen zum NLS_CURRENCY-Parameter
Informationen zum Parameter NLS_ISO_CURRENCY
Dieser Parameter gibt das ISO-Währungssymbol an (die Zeichenfolge, die vom numerischen Formatelement C zurückgegeben wird).
Spezifizierung: ISO-Währungssymbol (die Zeichenfolge, die vom numerischen Formatelement C zurückgegeben wird).
Zulässige Werte: Jede gültige Währungssymbol-Zeichenfolge.
Standardwert: Festgelegt durch NLS_TERRITORY; Beschreibung unter "Informationen zum Parameter NLS_TERRITORY".
Anders als ISO-Währungssymbole sind lokale Währungssymbole evtl. nicht eindeutig. Beispiel 7-9 zeigt, dass die Gebiete AUSTRALIA und AMERICA das gleiche lokale Währungssymbol, aber unterschiedliche ISO-Währungssymbole haben.
Um dieses Beispiel in SQL Developer zu testen, geben Sie die Anweisungen und Abfragen in das Arbeitsblatt ein. Informationen zum Arbeitsblatt finden Sie unter "Abfragen in SQL Developer ausführen". Die hier gezeigten Ergebnisse stammen aus SQL*Plus. Ihr Format unterscheidet sich in SQL Developer geringfügig.
Beispiel 7-9: NLS_ISO_CURRENCY
-
Beachten Sie die aktuellen Werte für NLS_TERRITORY und NLS_ISO_CURRENCY.
-
Wenn der Wert von NLS_TERRITORY in Schritt 1 nicht
AUSTRALIAist, ändern Sie den Wert:ALTER SESSION SET NLS_TERRITORY=AUSTRALIA; -
Führen Sie folgende Abfrage aus:
SELECT TO_CHAR(salary, 'L099G999D99') "Local", TO_CHAR(salary, 'C099G999D99') "ISO" FROM EMPLOYEES WHERE salary > 15000;Ergebnis:
Local ISO --------------------- ------------------ $024,000.00 AUD024,000.00 $017,000.00 AUD017,000.00 $017,000.00 AUD017,000.00 -
Ändern Sie den Wert von NLS_TERRITORY in
AMERICA:ALTER SESSION SET NLS_TERRITORY=AMERICA; -
Führen Sie folgende Abfrage aus:
SELECT TO_CHAR(salary, 'L099G999D99') "Local", TO_CHAR(salary, 'C099G999D99') "ISO" FROM EMPLOYEES WHERE salary > 15000;Ergebnis:
Local ISO --------------------- ------------------ $024,000.00 USD024,000.00 $017,000.00 USD017,000.00 $017,000.00 USD017,000.00 - Setzen Sie NLS_TERRITORY und NLS_ISO_CURRENCY auf die Werte, die sie in Schritt 1 hatten.
Siehe:
-
Oracle Database Globalization Support Guide für weitere Informationen zum Parameter NLS_ISO_CURRENCY
Informationen zum Parameter NLS_DUAL_CURRENCY
Dieser Parameter gibt das Dual-Währungssymbol an (eingeführt zur Unterstützung des Euro-Währungssymbols während der Euro-Übergangsperiode).
Gibt an: Duales Währungssymbol (eingeführt zur Unterstützung des Euro-Währungssymbols während der Euro-Übergangsperiode).
Zulässige Werte: Jede gültige Währungssymbol-Zeichenfolge.
Standardwert: Festgelegt durch NLS_TERRITORY, beschrieben in "Info zum Parameter NLS_TERRITORY".
Siehe:
-
Oracle Database Globalization Support Guide (Informationen zum Parameter NLS_DUAL_CURRENCY)
Informationen zum Parameter NLS_SORT
Dieser Parameter gibt die linguistische Sortierreihenfolge (Collating Sequence) für Abfragen mit der ORDER BY-Klausel an.
Legt fest: Sprachliche Sortierung (Sortierfolge) für Abfragen, die ORDER BY-Klausel verwenden.
Zulässige Werte:
-
BINARYDie Sortierfolge basiert auf der Binärsequenzfolge des Datenbankzeichensatzes oder des länderspezifischen Zeichensatzes, abhängig vom Datentyp.
-
Beliebiger Sortiername, der von Oracle unterstützt wird
Die Sortierfolge basiert auf der Reihenfolge des angegebenen sprachlichen Sortiernamens. Der Name für die sprachliche Sortierung ist üblicherweise identisch mit dem Namen der Sprache, jedoch nicht zwingend. Eine Liste der unterstützten sprachlichen Sortiernamen finden Sie in der Oracle Database Globalization Support Guide.
Standardwert: Festgelegt durch NLS_LANGUAGE; siehe Beschreibung unter "Info zum Parameter NLS_LANGUAGE".
Beispiel 7-10 zeigt, wie sich auf das angezeigte Ergebnis für die gleiche Abfrage zwei verschiedene NLS_SORT-Einstellungen auswirken. Die Einstellungen sind BINARY und Spanisch (traditionell) (SPANISH_M). Im traditionellen Spanisch gelten ch, ll und ñ als eigene Buchstaben, die im Alphabet auf c, l und n folgen.
Um dieses Beispiel in SQL Developer zu testen, geben Sie die Anweisungen und Abfragen in das Arbeitsblatt ein. Informationen zum Arbeitsblatt finden Sie unter "Abfragen in SQL Developer ausführen". Die hier gezeigten Ergebnisse stammen aus SQL*Plus. Ihr Format unterscheidet sich in SQL Developer geringfügig.
Sortierungen, die Groß- und Kleinschreibung bzw. diakritische Zeichen beachten
Vorgänge in Oracle Database beachten Groß- und Kleinschreibung bzw. diakritische Zeichen. Sie führen eine Sortierung durch, bei der die Groß- und Kleinschreibung beachtet wird, indem Sie _CI dem Wert des Parameters NLS_SORT hinzufügen (z.B. BINARY_CI oder GERMAN_CI). Wenn eine Sortierung sowohl Klein- als auch Kleinschreibung als auch diakritische Zeichen erfasst werden soll, muss _AI dem Wert des Parameters NLS_SORT hinzugefügt werden (Beispiel: BINARY_AI oder FRENCH_M_AI).
Beispiel 7-10: NLS_SORT wirkt sich auf die sprachliche Sortierreihenfolge aus
-
Tabelle für spanische Wörter erstellen:
CREATE TABLE temp (name VARCHAR2(15)); -
Tabelle mit spanischen Wörtern auffüllen:
INSERT INTO temp (name) VALUES ('laguna'); INSERT INTO temp (name) VALUES ('llama'); INSERT INTO temp (name) VALUES ('loco'); -
Notieren Sie den aktuellen Wert von NLS_SORT.
-
Wenn der NLS_SORT-Wert in Schritt 3 nicht
BINARYist, ändern Sie ihn wie folgt:ALTER SESSION SET NLS_SORT=BINARY; -
Führen Sie folgende Abfrage aus:
SELECT * FROM temp ORDER BY name;Ergebnis:
NAME --------------- laguna llama loco -
Ändern Sie den Wert von NLS_SORT auf
SPANISH_M(traditionelles Spanisch):ALTER SESSION SET NLS_SORT=SPANISH_M; -
Wiederholen Sie die Abfrage aus Schritt 5.
Ergebnis:
NAME --------------- laguna loco llama -
Löschen Sie die Tabelle:
DROP TABLE temp; - Legen Sie NLS_SORT auf den Wert fest, den dieser Parameter in Schritt 3 hatte.
Siehe:
-
Oracle Database Globalization Support Guide für weitere Informationen zum Parameter
NLS_SORT -
Oracle Database Globalization Support Guide für weitere Informationen zu Sortierungen, bei denen die Groß- und Kleinschreibung nicht beachtet wird sowie bei denen Akzente nicht beachtet werden
-
"Informationen zur linguistischen Sortierung und Zeichenfolgensuche"
Informationen zum Parameter NLS_COMP
Dieser Parameter gibt das Verhalten des Zeichenvergleichs von SQL-Vorgängen an.
Gibt an: Verhalten von SQL-Vorgängen beim Zeichenabgleich.
Zulässige Werte:
-
BINARYSQL vergleicht die Binärcodes von Zeichen. Ein Zeichen ist größer als ein anderes, wenn es über einen höheren Binärcode verfügt.
-
LINGUISTICSQL führt einen linguistischen Vergleich auf Basis des Werts des Parameters
NLS_SORTdurch, der unter "Parameter NLS_SORT näher beschrieben ist". -
ANSIDieser Wert dient nur für die Abwärtskompatibilität.
Standardwert: BINARY
Beispiel 7-11 zeigt, dass das Ergebnis einer Abfrage abhängig von der Einstellung NLS_COMP sein kann.
Um dieses Beispiel in SQL Developer zu testen, geben Sie die Anweisungen und Abfragen in das Arbeitsblatt ein. Informationen zum Arbeitsblatt finden Sie unter "Abfragen in SQL Developer ausführen". Die hier gezeigten Ergebnisse stammen aus SQL*Plus. Ihr Format unterscheidet sich in SQL Developer geringfügig.
Beispiel 7-11: NLS_COMP wirkt sich auf den SQL-Zeichenvergleich
-
Beachten Sie die aktuellen Werte von NLS_SORT und NLS_COMP.
-
Wenn die Werte von NLS_SORT und NLS_COMP in Schritt 1 nicht
SPANISH_M(Traditionelles Spanisch) bzw.BINARYsind, ändern Sie sie:ALTER SESSION SET NLS_SORT=SPANISH_M NLS_COMP=BINARY; -
Führen Sie folgende Abfrage aus:
SELECT LAST_NAME FROM EMPLOYEES WHERE LAST_NAME LIKE 'C%';Ergebnis:
LAST_NAME ------------------------- Cabrio Cambrault Cambrault Chen Chung Colmenares 6 rows selected -
Ändern Sie den Wert von NLS_COMP in
LINGUISTIC:ALTER SESSION SET NLS_COMP=LINGUISTIC; -
Wiederholen Sie die Abfrage aus Schritt 3.
Ergebnis:
LAST_NAME ------------------------- Cabrio Cambrault Cambrault Colmenares 4 rows selectedDieses Mal werden Chen und Chung nicht ausgegeben, da im traditionellen spanischen
chals ein einzelnes Zeichen gilt, das aufcfolgt. - Setzen Sie NLS_SORT und NLS_COMP auf die Werte, die sie in Schritt 1 hatten.
Siehe:
-
Oracle Database Globalization Support Guide für weitere Informationen zum NLS_COMP-Parameter
-
"Informationen zur linguistischen Sortierung und Zeichenfolgensuche"
Info zum Parameter NLS_LENGTH_SEMANTICS
Dieser Parameter legt die Längensemantik für Spalten der Zeichendatentypen CHAR, VARCHAR2 und LONG fest. In anderen Worten: Dies legt fest, ob diese Spalten in Byte oder Zeichen angegeben werden. Gilt nur für Spalten, die nach dem Festlegen des Parameters deklariert wurden.
Legt fest: Längensemantik für Spalten der Zeichendatentypen CHAR, VARCHAR2 und LONG. Dies legt fest, ob diese Spalten in Byte oder Zeichen angegeben werden. Gilt nur für Spalten, die nach dem Festlegen des Parameters deklariert wurden.
Zulässige Werte:
-
BYTENeue Spalten für CHAR, VARCHAR2 und LONG werden in Byte angegeben.
-
CHARNeue Spalten für CHAR, VARCHAR2 und LONG werden in Zeichen angegeben.
Standardwert: BYTE
Um dieses Beispiel in SQL Developer zu testen, geben Sie die Anweisungen und Abfragen in das Arbeitsblatt ein. Informationen zum Arbeitsblatt finden Sie unter "Abfragen in SQL Developer ausführen". Die hier gezeigten Ergebnisse stammen aus SQL*Plus. Ihr Format unterscheidet sich in SQL Developer geringfügig.
Beispiel 7-12 NLS_LENGTH_SEMANTICS wirkt sich auf den Speicher der VARCHAR2-Spalte aus
-
Beachten Sie die aktuellen Werte von NLS_LENGTH_SEMANTICS.
-
Wenn der Wert von NLS_LENGTH_SEMANTICS in Schritt 1 nicht
BYTEist, ändern Sie ihn entsprechend:ALTER SESSION SET NLS_LENGTH_SEMANTICS=BYTE; -
Erstellen Sie eine Tabelle mit einer Spalte namens VARCHAR2:
CREATE TABLE SEMANTICS_BYTE(SOME_DATA VARCHAR2(20)); -
Klicken Sie auf die Registerkarte Verbindungen.
-
Blenden Sie im Schritt "Verbindungen" hr_conn ein.
-
Blenden Sie in der Liste der Schemaobjekttypen die Option Tabellen ein.
-
Wählen Sie in der Tabellenliste SEMANTICS_BYTE aus.
Rechts neben dem Verbindungsschritt wird im Fensterbereich "Spalten" angezeigt, dass für den Spaltennamen SOME_DATA der Datentyp
VARCHAR2(20 BYTE)ist. -
Ändern Sie den Wert von NLS_LENGTH_SEMANTICS in
CHAR:ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR; -
Eine weitere Tabelle mit einer VARCHAR2-Spalte erstellen:
CREATE TABLE SEMANTICS_CHAR(SOME_DATA VARCHAR2(20)); -
Klicken Sie im Schritt "Verbindungen" auf das Symbol "Aktualisieren".
Die Liste der Tabellen umfasst jetzt SEMANTICS_CHAR.
-
Wählen Sie SEMANTICS_CHAR.
Der Fensterbereich "Spalten" zeigt an, dass für Spaltennamen SOME_DATA der Datentyp
VARCHAR2(20 CHAR)ist. -
Wählen Sie SEMANTICS_BYTE erneut aus.
Der Fensterbereich "Spalten" zeigt an, dass für Spaltennamen SOME_DATA der Datentyp nach wie vor
VARCHAR2(20 BYTE)ist. - Setzen Sie den Wert von NLS_LENGTH_SEMANTICS auf den Wert aus Schritt 1.
Siehe:
-
Oracle Database Globalization Support Guide (Informationen zum Parameter NLS_LENGTH_SEMANTICS)