Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment vérifier le format de date de votre session Oracle

Lorsque vous travaillez avec des fonctions qui renvoient des dates, Oracle Database renvoie ces dates en fonction de la valeur de NLS_DATE_FORMAT paramètre.

Il existe également un NLS_TIMESTAMP_FORMAT paramètre et un NLS_TIMESTAMP_TZ_FORMAT paramètre, qui ont tous deux un masque de format datetime qui peut être spécifié séparément.

Tous ces paramètres ont leurs valeurs par défaut dérivées du NLS_TERRITORY paramètre (qui, par défaut, dépend du système d'exploitation).

Vérifiez les paramètres

Nous pouvons interroger le V$NLS_PARAMETERS view pour vérifier les valeurs actuelles de ces paramètres (et d'autres paramètres NLS) :

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

Résultat :

                 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    

La valeur de mon NLS_TERRITORY le paramètre est AMERICA , et les différents paramètres datetime utilisent le modèle de format par défaut pour ce territoire.

Ces valeurs affectent la façon dont la date est formatée lorsque nous utilisons certaines fonctions. Par exemple, voici un exemple d'utilisation de SYSDATE pour retourner la date actuelle :

SELECT SYSDATE
FROM DUAL;

Résultat :

09-AUG-21

Nous pouvons modifier la valeur des paramètres NLS dans la portée de la session si nécessaire. Voir Comment changer le format de date dans votre session Oracle pour des exemples.

Autres paramètres NLS

Le V$NLS_PARAMETERS contient d'autres paramètres en plus de ceux listés ci-dessus. Voici un exemple de renvoi de toutes les lignes et colonnes de la vue :

SELECT *
FROM V$NLS_PARAMETERS;

Résultat :

                 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 

Il existe également d'autres paramètres NLS qui ne sont pas répertoriés dans cette vue (tels que NLS_LANG , NLS_CREDIT , et NLS_DEBIT ), mais elles ne peuvent être définies qu'en tant que variable d'environnement (c'est-à-dire pas dans la session).

Les paramètres NLS peuvent être définis à divers endroits, comme au niveau de la base de données, dans un fichier de paramètres d'initialisation, dans des variables d'environnement, au niveau de la session et même dans certaines fonctions. Chacun d'eux a une priorité prédéterminée par rapport aux autres.

Les valeurs de la portée de la session (comme indiqué dans cet article) remplacent toutes les autres portées, sauf lorsqu'elles sont explicitement spécifiées comme argument lors de l'appel d'une fonction.

Voir Méthodes de définition des paramètres NLS et leurs priorités pour un tableau décrivant l'ordre de priorité de chaque portée par rapport aux autres.

Consultez également Comment vérifier les valeurs des paramètres NLS, qui couvre les différentes vues que vous pouvez utiliser pour renvoyer les valeurs de chaque étendue.