NLS LANG et nls * parameters : Différence entre versions
De wikiGite
(→Oracle 10 : NLS_LANG, nls_*_parameters) |
|||
Ligne 2 : | Ligne 2 : | ||
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 (nls_database_parameters) : initialisés à la création de la base, immuable | ||
− | * instance ( | + | * instance (nls_parameters) : initialisés par spfile, non dynamiques |
* session (nls_session_parameters) : changés par alter session | * session (nls_session_parameters) : changés par alter session | ||
Version du 9 février 2011 à 13:52
Oracle 10 : NLS_LANG, nls_*_parameters
Il y a 3 niveaux de NLS :
- database (nls_database_parameters) : initialisés à la création de la base, immuable
- instance (nls_parameters) : initialisés par spfile, non dynamiques
- session (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.