Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So überprüfen Sie die Werte der NLS-Parameter in der Oracle-Datenbank

In Oracle Database bestimmen die NLS (National Language Support)-Parameter das gebietsschemaspezifische Verhalten sowohl auf dem Client als auch auf dem Server.

Diese Parameter können an verschiedenen Stellen gesetzt werden, z. B. auf Datenbankebene, in einer Initialisierungsparameterdatei, in Umgebungsvariablen, auf Sitzungsebene und sogar innerhalb einiger Funktionen.

Sie können den Wert der NLS-Parameter mit den folgenden Ansichten überprüfen.

Dynamische NLS-Leistungsansichten

Dynamische Leistungsansichten sind spezielle Ansichten, die kontinuierlich aktualisiert werden, während eine Datenbank geöffnet und verwendet wird. Diese Ansichten enthalten Daten über eine Vielzahl von Dingen, einschließlich Speichernutzung und -zuweisung, Dateistatus, Fortschritt von Jobs und Aufgaben, Statistiken und Metriken, SQL-Ausführung sowie System- und Sitzungsparameter.

Die folgenden dynamischen Leistungsansichten können verwendet werden, um Informationen zu NLS-Parametern zurückzugeben:

  • V$NLS_PARAMETERS zeigt aktuelle Werte verschiedener NLS-Parameter.
  • V$NLS_VALID_VALUES listet die gültigen Werte auf, auf die verschiedene NLS-Parameter gesetzt werden können.

Hier sind Beispiele für jede Ansicht.

Die V$NLS_PARAMETERS Anzeigen

Hier ist ein Beispiel für die Abfrage von V$NLS_PARAMETERS Ansicht auf meinem System:

SELECT * FROM V$NLS_PARAMETERS; 

Ergebnis:

 PARAMETER VALUE CON_ID __________________________ _________________________________ _________ NLS_LANGUAGE ENGLISH 3 NLS_TERRITORY AUSTRALIA 3 NLS_CURRENCY $ 3 NLS_ISO_CURRENCY AUSTRALIA 3 NLS_NUMERIC_CHARACTERS ., 3 NLS_CALENDAR GREGORIAN 3 NLS_DATE_FORMAT DD/MON/RR 3 NLS_DATE_LANGUAGE ENGLISH 3 NLS_CHARACTERSET AL32UTF8 3 NLS_SORT BINARY 3 NLS_TIME_FORMAT HH12:MI:SSXFF AM 3 NLS_TIMESTAMP_FORMAT TT/MON/RR HH12:MI:SSXFF AM 3 N LS_TIME_TZ_FORMAT HH12:MI:SSXFF AM TZR 3 NLS_TIMESTAMP_TZ_FORMAT DD/MON/RR HH12:MI:SSXFF AM TZR 3 NLS_DUAL_CURRENCY $ 3 NLS_NCHAR_CHARACTERSET AL16UTF16 3 NLS_COMP BINARY 3 NLS_LENGTH_SEMANTICS BYTE 3 NLS_NCHAR_CONV_EXCP FALS 

Die V$NLS_VALID_VALUES Anzeigen

Die V$NLS_VALID_VALUES view listet die gültigen Werte auf, auf die die folgenden NLS-Parameter gesetzt werden können:

  • NLS_LANGUAGE
  • NLS_SORT
  • NLS_TERRITORY
  • NLS_CHARACTERSET

Um Ihnen eine Vorstellung von der Art der in dieser Ansicht enthaltenen Daten zu geben, hier ist eine Abfrage, die die obersten 10 Zeilen zurückgibt:

SELECT * FROM V$NLS_VALID_VALUES
FETCH FIRST 10 ROWS ONLY; 

Ergebnis:

 PARAMETER WERT IST VORGESTELLT CON_ID ___________ __________________ _______________ _________ SPRACHE AMERIKANISCH FALSCH 0 SPRACHE DEUTSCH FALSCH 0 SPRACHE FRANZÖSISCH FALSCH 0 SPRACHE ITALIENISCH FALSCH 0 SPRACHE NIEDERLÄNDISCH FALSCH 0 SPRACHE ITALIENISCH FALSCH 0 SPRACHE NIEDERL FALSCH 0 

Diese Werte können also überall dort verwendet werden, wo ein NLS-Parameter einen Sprachwert akzeptiert. Zum Beispiel könnten wir Folgendes tun:

ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN'; 

Damit wird NLS_LANGUAGE festgelegt Parameter zu AMERICAN . Um ihn auf einen anderen Wert zu setzen, können wir den V$NLS_VALID_VALUES prüfen anzeigen, um zu sehen, welche Sprachen akzeptiert werden.

NLS Data Dictionary-Ansichten

Sie können die Sitzungs-, Instanz- und Datenbank-NLS-Parameter überprüfen, indem Sie die folgenden Datenwörterbuchansichten abfragen:

  • NLS_SESSION_PARAMETERS zeigt die NLS-Parameter und ihre Werte für die Sitzung, die die Ansicht abfragt. Es zeigt keine Informationen über den Zeichensatz an.
  • NLS_INSTANCE_PARAMETERS zeigt die aktuellen NLS-Instanzparameter, die explizit gesetzt wurden, und die Werte der NLS-Instanzparameter.
  • NLS_DATABASE_PARAMETERS zeigt die Werte der NLS-Parameter für die Datenbank. Die Werte werden in der Datenbank gespeichert.

Wie bereits erwähnt, können NLS-Parameter an verschiedenen Stellen eingestellt werden. Jeder Bereich kann andere Werte für einen bestimmten NLS-Parameter enthalten als ein anderer Bereich. Mit den obigen Datenwörterbuchansichten können Sie jeden Bereich nach seinem Wert abfragen. NLS-Sitzungsparameter überschreiben die NLS-Instanzparameter. Und die NLS-Instanzparameter überschreiben die NLS-Parameter für die Datenbank.

Siehe Methoden zum Festlegen von NLS-Parametern und ihre Prioritäten für eine Tabelle, die die Vorrangreihenfolge umreißt, die jeder Geltungsbereich in Bezug auf die anderen hat.

Folgendes erhalte ich, wenn ich jede dieser Ansichten auf meinem System abfrage:

SELECT * FROM NLS_SESSION_PARAMETERS;
SELECT * FROM NLS_INSTANCE_PARAMETERS;
SELECT * FROM NLS_DATABASE_PARAMETERS; 

Ergebnis:

 PARAMETER VALUE __________________________ _________________________________ NLS_LANGUAGE ENGLISH NLS_TERRITORY AUSTRALIA NLS_CURRENCY $ NLS_ISO_CURRENCY AUSTRALIA NLS_NUMERIC_CHARACTERS ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD/MON/RR NLS_DATE_LANGUAGE ENGLISH NLS_SORT BINARY NLS_TIME_FORMAT HH12:MI:SSXFF AM NLS_TIMESTAMP_FORMAT DD/MON/RR HH12:MI:SSXFF AM NLS_TIME_TZ_FORMAT HH12:MI:SSXFF AM TZR NLS_TIMESTAMP_TZ_FORMAT TT/MON/RR HH12:MI:SSXFF AM TZR NLS_DUAL_CURRENCY $ NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE 17 Zeilen ausgewählt. PARAMETER VALUE __________________________ ___________ NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_SORT NLS_DATE_LANGUAGE NLS_DATE_FORMAT NLS_CURRENCY NLS_NUMERIC_CHARACTERS NLS_ISO_CURRENCY NLS_CALENDAR NLS_TIME_FORMAT NLS_TIMESTAMP_FORMAT NLS_TIME_TZ_FORMAT NLS_TIMESTAMP_TZ_FORMAT NLS_DUAL_CURRENCY NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE 17 rows selected. PARAMETER VALUE __________________________ _______________________________ NLS_RDBMS_VERSION 19.0.0.0.0 NLS_NCHAR_CONV_EXCP FALSE NLS_LENGTH_SEMANTICS BYTE NLS_COMP BINARY NLS_DUAL_CURRENCY $ NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_SORT BINARY NLS_DATE_LANGUAGE AMERICAN NLS_DATE_FORMAT DD-MON-RR NLS_CALENDAR GREGORIAN NLS_NUMERIC_CHARACTERS ., NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_CHARACTERS ET AL32UTF8 NLS_ISO_CURRENCY AMERICA NLS_CURRENCY $ NLS_TERRITORY AMERICA NLS_LANGUAGE AMERICAN 20 Zeilen ausgewählt. 

Nehmen Sie die NLS_LANGUAGE Parameter zum Beispiel. Dies ist auf AMERICAN eingestellt sowohl auf Datenbank- als auch auf Instanzebene (wie aus den NLS_DATABASE_PARAMETERS ersichtlich ist und NLS_INSTANCWE_PARAMETERS Ansichten). Aber der Session-Parameter (zu sehen in der Datei NLS_SESSION_PARAMETERS Ansicht) verwendet ENGLISH , die die anderen beiden Einstellungen außer Kraft setzt.