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

Comment vérifier les valeurs des paramètres NLS dans la base de données Oracle

Dans Oracle Database, les paramètres NLS (National Language Support) déterminent le comportement spécifique aux paramètres régionaux sur le client et le serveur.

Ces paramètres peuvent être définis à divers endroits, par exemple 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.

Vous pouvez vérifier la valeur des paramètres NLS avec les vues suivantes.

Vues des performances dynamiques NLS

Les vues de performances dynamiques sont des vues spéciales qui sont continuellement mises à jour lorsqu'une base de données est ouverte et en cours d'utilisation. Ces vues contiennent des données sur un grand nombre de choses, y compris l'utilisation et l'allocation de la mémoire, les états des fichiers, la progression des travaux et des tâches, les statistiques et les métriques, l'exécution SQL, ainsi que les paramètres système et de session.

Les vues de performances dynamiques suivantes peuvent être utilisées pour renvoyer des informations sur les paramètres NLS :

  • V$NLS_PARAMETERS affiche les valeurs actuelles de divers paramètres NLS.
  • V$NLS_VALID_VALUES répertorie les valeurs valides sur lesquelles divers paramètres NLS peuvent être définis.

Voici des exemples de chaque vue.

Le V$NLS_PARAMETERS Afficher

Voici un exemple d'interrogation du V$NLS_PARAMETERS afficher sur mon système :

SELECT * FROM V$NLS_PARAMETERS; 

Résultat :

 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 JJ/MON/RR HH12:MI:SSXFF AM 3 N LS_TIME_TZ_FORMAT HH12:MI:SSXFF AM TZR 3 NLS_TIMESTAMP_TZ_FORMAT JJ/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_SEV_EXCPpre 

Le V$NLS_VALID_VALUES Afficher

Le V$NLS_VALID_VALUES view répertorie les valeurs valides sur lesquelles les paramètres NLS suivants peuvent être définis :

  • NLS_LANGUAGE
  • NLS_SORT
  • NLS_TERRITORY
  • NLS_CHARACTERSET

Pour vous donner une idée du type de données contenues dans cette vue, voici une requête qui renvoie les 10 premières lignes :

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

Résultat :

 PARAMETER VALUE ISDEPRECATED CON_ID ____________ __________________ _______________ _________ LANGUE AMÉRICAINE FAUX 0 LANGUE ALLEMAND FAUX 0 LANGUE FRANÇAIS FAUX 0 LANGUE CANADIEN FRANÇAIS FAUX 0 LANGUE ESPAGNOL FAUX 0 LANGUE ITALIEN FAUX 0 LANGUE NÉERLANDAIS FAUX 0 LANGUE SUÉDOIS LANGUE FAUX 0 LANGUE FAUX NORVÉGIEN0 FAUX 0 

Ainsi, ces valeurs peuvent être utilisées partout où un paramètre NLS accepte une valeur de langue. Par exemple, nous pourrions faire ce qui suit :

ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN'; 

Qui définit le NLS_LANGUAGE paramètre à AMERICAN . Pour le définir sur une valeur différente, nous pouvons vérifier le V$NLS_VALID_VALUES vue pour voir quelles langues sont acceptées.

Vues du dictionnaire de données NLS

Vous pouvez vérifier les paramètres NLS de session, d'instance et de base de données en interrogeant les vues de dictionnaire de données suivantes :

  • NLS_SESSION_PARAMETERS affiche les paramètres NLS et leurs valeurs pour la session qui interroge la vue. Il n'affiche pas d'informations sur le jeu de caractères.
  • NLS_INSTANCE_PARAMETERS affiche les paramètres d'instance NLS actuels qui ont été explicitement définis et les valeurs des paramètres d'instance NLS.
  • NLS_DATABASE_PARAMETERS affiche les valeurs des paramètres NLS pour la base de données. Les valeurs sont stockées dans la base de données.

Comme mentionné, les paramètres NLS peuvent être définis à divers endroits. Chaque étendue peut contenir des valeurs différentes pour un paramètre NLS donné par rapport à une autre étendue. Les vues de dictionnaire de données ci-dessus vous permettent d'interroger chaque étendue pour sa valeur. Les paramètres de session NLS remplacent les paramètres d'instance NLS. Et les paramètres d'instance NLS remplacent les paramètres NLS de la base de données.

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.

Voici ce que j'obtiens lorsque j'interroge chacune de ces vues sur mon système :

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

Résultat :

 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 JJ/MON/RR HH12:MI:SSXFF AM TZR NLS_DUAL_CURRENCY $ NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE 17 lignes sélectionnées. 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 lignes sélectionnées. 

Prenez le NLS_LANGUAGE paramètre par exemple. Ceci est défini sur AMERICAN à la fois au niveau de la base de données et de l'instance (comme le montre le NLS_DATABASE_PARAMETERS et NLS_INSTANCWE_PARAMETERS vues). Mais le paramètre de session (qui peut être vu dans le NLS_SESSION_PARAMETERS view) utilise ENGLISH , qui remplace les deux autres paramètres.