Bonjour,
Comment connaître le CHARACTER_SET utilisé dans une base de données ? Dans une vue du dictionnaire ?
Version imprimable
Bonjour,
Comment connaître le CHARACTER_SET utilisé dans une base de données ? Dans une vue du dictionnaire ?
Select * from v$parameter tu as toutes les propriéts et pour toi les propriétés NLS qui t'intéressent.
Attention ! Les paramètres NLS n'ont rien à voir avec le jeu de charactères. Les NLS peuvent être modifié avec un alter session alors que le character_set est fixé au moment de la création de la base de données et on ne peut pas le modifier.
Par exemple :
Comment connaître le CHARACTER_SET utilisé dans une base de données ?Citation:
NLS_LANGUAGE specifies the default language of the database. This language is used for messages, day and month names, symbols for AD, BC, a.m., and p.m., and the default sorting mechanism. This parameter also determines the default values of the parameters NLS_DATE_LANGUAGE and NLS_SORT.
NLS_TERRITORY specifies the name of the territory whose conventions are to be followed for day and week numbering.
This parameter also establishes the default date format, the default decimal character and group separator, and the default ISO and local currency symbols.
Les NLS sont au niveau session , instance et BD tu peux modifier via un alter session les NLS de ta session mais pas ceux de ta BD.
Tu peux par exemple voir ces info via Toad en allant dans le menu DBA.
Il faut en effet distinguer NLS_SESSION_PARAMETERS et NLS_DATABASE_PARAMETERS. Comme leurs noms l'indiquent,
NLS_SESSION_PARAMETERS ne concerne que la session courante alors
que NLS_DATABASE_PARAMETERS contient les paramètres permanents de la base de données.
Pour connaître le jeu de caractères de la base, on peut utiliser:
On peut aussi le consulter dans l'alert.log de la base à chaque démarrage.Code:
1
2
3
4
5
6 SQL> select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET'; PARAMETER VALUE ------------------------------ ---------------------------------------- NLS_CHARACTERSET WE8ISO8859P1
Otez moi d'un doute.
Le NLS_CHARACTERSET ne peut pas être modifié ? (je n'ai rien trouvé dans la doc) alors que les autres paramètres NLS le peuvent ?
Si, on peut le modifier sous certaines conditions (et ça dépend aussi des versions d'Oracle) avec ALTER DATABASE ... Mais c'est à manipuler avec beaucoup de précautions.
Il faut étudier le Globalization Guide de la version d'Oracle que vous utilisez.
Faux, en fait, ça dépend des paramètres NLS dont vous parlez...Citation:
Envoyé par Karim.1
Code:
1
2
3 select * from NLS_DATABASE_PARAMETERS; select * from NLS_INSTANCE_PARAMETERS; select * from NLS_SESSION_PARAMETERS;
Cette information est peut-être pertinente, mais à condition d'avoir Toad... c'est pourquoi il est préférable de donner les vues systèmes à manipuler...Citation:
Envoyé par Karim.1
En effet, tout dépend de quel paramètre on parle. Il n'y a pas de NLS_CHARACTERSET dans la vue NLS_SESSION_PARAMETERS. Pour modifier le jeu de caractères utilisé par la session courante, il faut modifier la valeur de la variable d'environnement NLS_LANG au niveau OS (ou la clé dans la registre Windows) qui va être utilisée par le code client Oracle.
Pour savoir quel est le "NLS_CHARACTERSET" utilisé par la session courante, on peut lancer sqlplus dans le même environnement et taper la commande @[.%NLS_LANG%]:
Code:
1
2
3
4 SQL> @[.%NLS_LANG%] SP2-0310: unable to open file "[.FRENCH_FRANCE.WE8MSWIN1252]" SQL>
ok merci ! n'en ajouté plus !
En tout cas, cela pourrait faire un excelent sujet de tutoriel
Merci
Sans vouloir palabrer, je ne vois pas la différence entre les deux propos !!!Citation:
Envoyé par LeoAnderson