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

So überprüfen Sie das Datumsformat Ihrer Oracle-Sitzung

Beim Arbeiten mit Funktionen, die Daten zurückgeben, gibt Oracle Database diese Daten basierend auf dem Wert von NLS_DATE_FORMAT zurück Parameter.

Es gibt auch ein NLS_TIMESTAMP_FORMAT Parameter und ein NLS_TIMESTAMP_TZ_FORMAT Parameter, die beide eine Datetime-Formatmaske haben, die separat angegeben werden kann.

Alle diese Parameter haben ihre Standardwerte, die von NLS_TERRITORY abgeleitet sind -Parameter (der standardmäßig vom Betriebssystem abhängig ist).

Überprüfen Sie die Einstellungen

Wir können die V$NLS_PARAMETERS abfragen Ansicht, um die aktuellen Werte dieser Parameter (und anderer NLS-Parameter) zu überprüfen:

SELECT
    PARAMETER,
    VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
    'NLS_TERRITORY',
    'NLS_DATE_FORMAT',
    'NLS_TIMESTAMP_FORMAT',
    'NLS_TIMESTAMP_TZ_FORMAT'
    );

Ergebnis:

                 PARAMETER                           VALUE 
__________________________ _______________________________ 
NLS_TERRITORY              AMERICA                         
NLS_DATE_FORMAT            DD-MON-RR                       
NLS_TIMESTAMP_FORMAT       DD-MON-RR HH.MI.SSXFF AM        
NLS_TIMESTAMP_TZ_FORMAT    DD-MON-RR HH.MI.SSXFF AM TZR    

Der Wert meines NLS_TERRITORY Parameter ist AMERICA , und die verschiedenen datetime-Parameter verwenden das Standardformatmodell für dieses Gebiet.

Diese Werte beeinflussen, wie das Datum formatiert wird, wenn wir bestimmte Funktionen verwenden. Hier ist beispielsweise ein Beispiel für die Verwendung von SYSDATE um das aktuelle Datum zurückzugeben:

SELECT SYSDATE
FROM DUAL;

Ergebnis:

09-AUG-21

Wir können den Wert der NLS-Parameter im Sitzungsbereich bei Bedarf ändern. Beispiele finden Sie unter So ändern Sie das Datumsformat in Ihrer Oracle-Sitzung.

Andere NLS-Parameter

Die V$NLS_PARAMETERS enthält neben den oben aufgeführten weitere Parameter. Hier ist ein Beispiel für die Rückgabe aller Zeilen und Spalten in der Ansicht:

SELECT *
FROM V$NLS_PARAMETERS;

Ergebnis:

                 PARAMETER                           VALUE    CON_ID 
__________________________ _______________________________ _________ 
NLS_LANGUAGE               AMERICAN                                3 
NLS_TERRITORY              AMERICA                                 3 
NLS_CURRENCY               $                                       3 
NLS_ISO_CURRENCY           AMERICA                                 3 
NLS_NUMERIC_CHARACTERS     .,                                      3 
NLS_CALENDAR               GREGORIAN                               3 
NLS_DATE_FORMAT            DD-MON-RR                               3 
NLS_DATE_LANGUAGE          AMERICAN                                3 
NLS_CHARACTERSET           AL32UTF8                                3 
NLS_SORT                   BINARY                                  3 
NLS_TIME_FORMAT            HH.MI.SSXFF AM                          3 
NLS_TIMESTAMP_FORMAT       DD-MON-RR HH.MI.SSXFF AM                3 
NLS_TIME_TZ_FORMAT         HH.MI.SSXFF AM TZR                      3 
NLS_TIMESTAMP_TZ_FORMAT    DD-MON-RR HH.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        FALSE                                   3 

Es gibt auch andere NLS-Parameter, die in dieser Ansicht nicht aufgeführt sind (z. B. NLS_LANG , NLS_CREDIT und NLS_DEBIT ), aber sie können nur als Umgebungsvariable gesetzt werden (also nicht in der Sitzung).

NLS-Parameter können an verschiedenen Stellen gesetzt werden, z. B. auf Datenbankebene, in einer Initialisierungsparameterdatei, in Umgebungsvariablen, auf Sitzungsebene und sogar innerhalb einiger Funktionen. Jeder von diesen hat eine vorbestimmte Priorität in Bezug auf die anderen.

Die Werte im Sitzungsbereich (wie in diesem Artikel beschrieben) überschreiben alle anderen Bereiche, es sei denn, sie werden beim Aufrufen einer Funktion explizit als Argument angegeben.

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

Siehe auch How to Check the Values ​​of the NLS Parameters, das die verschiedenen Ansichten behandelt, die Sie verwenden können, um die Werte aus jedem Bereich zurückzugeben.