Outils personnels

NLS LANG et nls * parameters : Différence entre versions

De wikiGite

(Oracle 10 : NLS_LANG, nls_*_parameters)
(Oracle 10 : NLS_LANG, nls_*_parameters)
Ligne 1 : Ligne 1 :
 
== Oracle 10 : NLS_LANG, nls_*_parameters ==
 
== Oracle 10 : NLS_LANG, nls_*_parameters ==
 
Il y a 3 niveaux de NLS :
 
Il y a 3 niveaux de NLS :
* database (nls_database_parameters) : initialisés à la création de la base, immuable
+
* database (v$nls_database_parameters) : initialisés à la création de la base, immuable
* instance (nls_parameters) : initialisés par spfile, non dynamiques
+
* instance (v$nls_parameters) : initialisés par spfile, non dynamiques
* session (nls_session_parameters) : changés par alter session
+
* session (v$nls_session_parameters) : changés par alter session
  
 
Session si non paramétré prend la valeur d'Instance qui si non paramétré prend la valeur de Database.
 
Session si non paramétré prend la valeur d'Instance qui si non paramétré prend la valeur de Database.

Version du 9 février 2011 à 13:55

Oracle 10 : NLS_LANG, nls_*_parameters

Il y a 3 niveaux de NLS :

  • database (v$nls_database_parameters) : initialisés à la création de la base, immuable
  • instance (v$nls_parameters) : initialisés par spfile, non dynamiques
  • session (v$nls_session_parameters) : changés par alter session

Session si non paramétré prend la valeur d'Instance qui si non paramétré prend la valeur de Database.

MAIS il y a un autre paramètre qui peut tout changer : NLS_LANG, paramètre d'environnement OS. Or sur Windows il est paramétré dans les registres.

Exemples :

  • NLS_LANG=AMERICAN_AMERICA.WE8ISO8859.

Une base crée en AMERICAN_AMERICA prendra cette valeur par défaut. Si on change le spfile, l'instance sera bien en FRENCH_FRANCE, MAIS les sessions utilisateurs resteront en AMERICAN_AMERICA à cause du NLS_LANG.

Par contre une base créée en FRENCH_FRANCE reportera bien ces paramètres sur instance et sessions.

  • NLS_LANG=FRENCH_FRANCE.WE8ISO8859.

La base créée en AMERICAN_AMERICA prend FRENCH_FRANCE au redémarrage. Si on a modifié le spfile, les sessions sont aussi en FRENCH_FRANCE.