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 (v$nls_database_parameters) : initialisés à la création de la base, immuable
+
* database (nls_database_parameters -> vue statique) : initialisés à la création de la base, immuable
* instance (v$nls_parameters) : initialisés par spfile, non dynamiques
+
* instance (v$nls_parameters -> vue dynamique) : initialisés par spfile, non dynamiques
* session (v$nls_session_parameters) : changés par alter session
+
* session (nls_session_parameters -> vue statique) : 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:58

Oracle 10 : NLS_LANG, nls_*_parameters

Il y a 3 niveaux de NLS :

  • database (nls_database_parameters -> vue statique) : initialisés à la création de la base, immuable
  • instance (v$nls_parameters -> vue dynamique) : initialisés par spfile, non dynamiques
  • session (nls_session_parameters -> vue statique) : 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.