Einzelne NLS-Parameter

Viele einzelne NLS-Parameter sind verfügbar.

Siehe:

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:

Informationen zum Parameter NLS_LANGUAGE

Dieser Parameter gibt die Standardsprache der Datenbank an.

Gibt an: Standardsprache der Datenbank. Standardkonventionen für:

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:

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

  1. Notieren Sie den aktuellen Wert von NLS_LANGUAGE.

  2. Wenn der Wert in Schritt 1 nicht ITALIAN lautet, ändern Sie ihn:

     ALTER SESSION SET NLS_LANGUAGE=ITALIAN;
    
  3. 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
    
  4. 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.
    
  5. Ändern Sie den Wert von NLS_LANGUAGE in GERMAN:

     ALTER SESSION SET NLS_LANGUAGE=GERMAN;
    
  6. Wiederholen Sie die Abfrage aus Schritt 3.

    Ergebnis:

     SELECT * FROM nonexistent_table
                 *
     ERROR at line 1:
     ORA-00942: Tabelle oder View nicht vorhanden
    
  7. 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.
    
  8. Legen Sie NLS_LANGUAGE auf den Wert fest, den Sie in Schritt 1 hatten.

Siehe:

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:

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:

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

  1. Notieren Sie den aktuellen Wert von NLS_TERRITORY.

  2. Wenn der Wert in Schritt 1 nicht JAPAN lautet, ändern Sie ihn:

     ALTER SESSION SET NLS_TERRITORY=JAPAN;
    
  3. 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.
    
  4. Ändern Sie den Wert von NLS_TERRITORY in AMERICA:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  5. Wiederholen Sie die Abfrage aus Schritt 3.

    Ergebnis:

     SALARY
    
     --------------------
    
             $24,000.00
    
             $17,000.00
    
             $17,000.00
    
     3 rows selected.
    
  6. Stellen Sie NLS_TERRITORY wieder auf den Wert ein, der in Schritt 1 angezeigt wird.

Siehe:

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

  1. Notieren Sie den aktuellen Wert von NLS_TERRITORY.

  2. Wenn der Wert in Schritt 1 nicht AMERICA lautet, ändern Sie ihn:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  3. 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.
    
  4. Ändern Sie den Wert von NLS_TERRITORY in FRANCE:

     ALTER SESSION SET NLS_TERRITORY=FRANCE;
    
  5. 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 FRENCH festlegen, bevor sie die Abfrage ausführen.)

  6. Stellen Sie NLS_TERRITORY auf den Wert ein, der in Schritt 1 angezeigt worden ist.

Beispiel 7-4: NLS_DATE_FORMAT überschreibt NLS_TERRITORY

  1. Notieren Sie die aktuellen Werte von NLS_TERRITORY und NLS_DATE_FORMAT.

  2. Wenn der Wert für NLS_TERRITORY in Schritt 1 nicht AMERICA ist, ändern Sie diesen:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  3. 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';
    
  4. 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.
    
  5. Setzen Sie NLS_TERRITORY und NLS_DATE_FORMAT auf die Werte, die sie in Schritt 1 hatten.

Siehe:

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:

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

  1. Notieren Sie den aktuellen Wert von NLS_DATE_LANGUAGE.

  2. Wenn der Wert von NLS_DATE_LANGUAGE in Schritt 1 nicht FRENCH ist, ändern Sie den Wert:

     ALTER SESSION SET NLS_DATE_LANGUAGE=FRENCH;
    
  3. 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
    
  4. Ändern Sie den Wert von NLS_DATE_LANGUAGE in SWEDISH:

     ALTER SESSION SET NLS_DATE_LANGUAGE=SWEDISH;
    
  5. Wiederholen Sie die Abfrage aus Schritt 3.

    Ergebnis:

     System Date
    
     -------------------------
    
     Fredag :28 December   2012
    
  6. Legen Sie NLS_DATE_LANGUAGE wieder auf den Wert fest, der in Schritt 1 angezeigt worden ist.

Siehe:

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:

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:

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

  1. Beachten Sie den aktuellen Wert von NLS_CALENDAR.
  2. Wenn der Wert von NLS_CALENDAR in Schritt 1 nicht 'English Hijrah' lautet, ändern Sie ihn:

     ALTER SESSION SET NLS_CALENDAR='English Hijrah';
    
  3. Führen Sie folgende Abfrage aus:

     SELECT SYSDATE FROM DUAL;
    

    Ergebnis:

     SYSDATE
    
     -------------------------
    
     17 Safar             1434
    
  4. Ändern Sie den Wert von NLS_CALENDAR in 'Gregorian':

     ALTER SESSION SET NLS_CALENDAR='Gregorian';
    
  5. Führen Sie folgende Abfrage aus:

     SELECT SYSDATE FROM DUAL;
    

    Ergebnis:

     SYSDATE
    
     ---------
    
     31-DEC-12
    
  6. Legen Sie NLS_CALENDAR auf den Wert fest, der in Schritt 1 angezeigt worden ist.

Siehe:

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:

Standardwert: Festgelegt durch NLS_TERRITORY; Beschreibung unter "Informationen zum Parameter NLS_TERRITORY".

In einer SQL-Anweisung können Sie eine Zahl wie folgt angeben:

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

  1. Beachten Sie den aktuellen Wert von NLS_NUMERIC_CHARACTERS.
  2. 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=",.";
    
  3. Führen Sie folgende Abfrage aus:

     SELECT TO_CHAR(4000, '9G999D99') "Number" FROM DUAL;
    

    Ergebnis:

     Number
    
     ---------
     4.000,00
    
  4. Ä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=".,";
    
  5. Führen Sie folgende Abfrage aus:

     SELECT TO_CHAR(4000, '9G999D99') "Number" FROM DUAL;
    

    Ergebnis:

     Number
    
     ---------
     4,000.00
    
  6. Stellen Sie NLS_NUMERIC_CHARACTERS auf den Wert ein, den Sie in Schritt 1 angezeigt haben.

Siehe:

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

  1. Notieren Sie die aktuellen Werte von NLS_TERRITORY und NLS_CURRENCY.
  2. Wenn der Wert für NLS_TERRITORY in Schritt 1 nicht AMERICA ist, ändern Sie diesen:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  3. 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
    
  4. Ändern Sie den Wert von NLS_CURRENCY in '©':

     ALTER SESSION SET NLS_CURRENCY='©';
    
  5. 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
    
  6. Setzen Sie NLS_TERRITORY und NLS_CURRENCY auf die Werte, die sie in Schritt 1 hatten.

Siehe:

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

  1. Beachten Sie die aktuellen Werte für NLS_TERRITORY und NLS_ISO_CURRENCY.
  2. Wenn der Wert von NLS_TERRITORY in Schritt 1 nicht AUSTRALIA ist, ändern Sie den Wert:

     ALTER SESSION SET NLS_TERRITORY=AUSTRALIA;
    
  3. 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
    
  4. Ändern Sie den Wert von NLS_TERRITORY in AMERICA:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  5. 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
    
  6. Setzen Sie NLS_TERRITORY und NLS_ISO_CURRENCY auf die Werte, die sie in Schritt 1 hatten.

Siehe:

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:

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:

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

  1. Tabelle für spanische Wörter erstellen:

     CREATE TABLE temp (name VARCHAR2(15));
    
  2. 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');
    
  3. Notieren Sie den aktuellen Wert von NLS_SORT.
  4. Wenn der NLS_SORT-Wert in Schritt 3 nicht BINARY ist, ändern Sie ihn wie folgt:

     ALTER SESSION SET NLS_SORT=BINARY;
    
  5. Führen Sie folgende Abfrage aus:

     SELECT * FROM temp ORDER BY name;
    

    Ergebnis:

     NAME
    
     ---------------
     laguna
    
     llama
    
     loco
    
  6. Ändern Sie den Wert von NLS_SORT auf SPANISH_M (traditionelles Spanisch):

     ALTER SESSION SET NLS_SORT=SPANISH_M;
    
  7. Wiederholen Sie die Abfrage aus Schritt 5.

    Ergebnis:

     NAME
    
     ---------------
     laguna
    
     loco
    
     llama
    
  8. Löschen Sie die Tabelle:

     DROP TABLE temp;
    
  9. Legen Sie NLS_SORT auf den Wert fest, den dieser Parameter in Schritt 3 hatte.

Siehe:

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:

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

  1. Beachten Sie die aktuellen Werte von NLS_SORT und NLS_COMP.
  2. Wenn die Werte von NLS_SORT und NLS_COMP in Schritt 1 nicht SPANISH_M (Traditionelles Spanisch) bzw. BINARY sind, ändern Sie sie:

     ALTER SESSION SET NLS_SORT=SPANISH_M NLS_COMP=BINARY;
    
  3. 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
    
  4. Ändern Sie den Wert von NLS_COMP in LINGUISTIC:

     ALTER SESSION SET NLS_COMP=LINGUISTIC;
    
  5. Wiederholen Sie die Abfrage aus Schritt 3.

    Ergebnis:

     LAST_NAME
    
     -------------------------
     Cabrio
     Cambrault
     Cambrault
     Colmenares
    
     4 rows selected
    

    Dieses Mal werden Chen und Chung nicht ausgegeben, da im traditionellen spanischen ch als ein einzelnes Zeichen gilt, das auf c folgt.

  6. Setzen Sie NLS_SORT und NLS_COMP auf die Werte, die sie in Schritt 1 hatten.

Siehe:

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:

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

  1. Beachten Sie die aktuellen Werte von NLS_LENGTH_SEMANTICS.
  2. Wenn der Wert von NLS_LENGTH_SEMANTICS in Schritt 1 nicht BYTE ist, ändern Sie ihn entsprechend:

     ALTER SESSION SET NLS_LENGTH_SEMANTICS=BYTE;
    
  3. Erstellen Sie eine Tabelle mit einer Spalte namens VARCHAR2:

     CREATE TABLE SEMANTICS_BYTE(SOME_DATA VARCHAR2(20));
    
  4. Klicken Sie auf die Registerkarte Verbindungen.

  5. Blenden Sie im Schritt "Verbindungen" hr_conn ein.

  6. Blenden Sie in der Liste der Schemaobjekttypen die Option Tabellen ein.

  7. 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.

  8. Ändern Sie den Wert von NLS_LENGTH_SEMANTICS in CHAR:

     ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR;
    
  9. Eine weitere Tabelle mit einer VARCHAR2-Spalte erstellen:

     CREATE TABLE SEMANTICS_CHAR(SOME_DATA VARCHAR2(20));
    
  10. Klicken Sie im Schritt "Verbindungen" auf das Symbol "Aktualisieren".

    Die Liste der Tabellen umfasst jetzt SEMANTICS_CHAR.

  11. Wählen Sie SEMANTICS_CHAR.

    Der Fensterbereich "Spalten" zeigt an, dass für Spaltennamen SOME_DATA der Datentyp VARCHAR2(20 CHAR) ist.

  12. 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.

  13. Setzen Sie den Wert von NLS_LENGTH_SEMANTICS auf den Wert aus Schritt 1.

Siehe: