A propos des différents paramètres NLS
De nombreux paramètres NLS individuels sont disponibles.
Voir aussi :
-
Oracle Database Globalization Support Guide, pour plus d'informations sur la configuration d'un environnement de prise en charge de la globalisation
A propos de l'environnement local et du paramètre NLS_LANG
Un paramètre local représente un environnement linguistique et culturel dans lequel s'exécute un système ou une application. Le moyen le plus simple de spécifier un environnement linguistique pour le logiciel Oracle Database est de définir le paramètre NLS_LANG.
Le paramètre NLS_LANG définit les valeurs par défaut des paramètres NLS_LANGUAGE et NLS_TERRITORY pour la session serveur (par exemple, le traitement des instructions SQL) et l'application client (par exemple, le formatage d'affichage dans les outils Oracle Database). Le paramètre NLS_LANG définit également le jeu de caractères que l'application client utilise pour les données saisies ou affichées.
La valeur par défaut de NLS_LANG est définie au cours de l'installation de la base de données. L'instruction ALTER SESSION permet de modifier les valeurs des paramètres NLS, y compris celles qui sont définies par NLS_LANG, pour votre SESSION. Cependant, seul le client peut modifier les paramètres NLS de l'environnement client.
Voir aussi :
-
Oracle Database Globalization Support Guide, pour plus d'informations sur le paramétrage d'un environnement local à l'aide du paramètre
NLS_LANG -
Guide de support à la globalisation Oracle Database, pour plus d'informations sur les langues, les territoires, les jeux de caractères et d'autres données d'environnement local pris en charge par Oracle Database
A propos du paramètre NLS_LANGUAGE
Ce paramètre indique la langue par défaut de la base de données.
Indique : langue par exemple de la base. Conventions par défaut pour les éléments suivants :
-
Langue des messages serveur
-
Langue des noms et abréviations des jours et mois indiqués dans les fonctions SQL TO_CHAR et TO_DATE
-
Symboles des équivalents linguistiques par défaut de AM, PM, AD et BC
-
Ordre de tri par défaut des données alphanumériques lorsque la clause ORDER BY est indiquée
-
Sens d'écriture
-
Chaînes de réponse affirmative ou négative (par exemple, OUI et NON)
Valeurs acceptables : tout nom de langue pris en charge par Oracle. Pour consulter la liste, reportez-vous au Guide de support à la globalisation Oracle Database.
Valeur par défaut : définie par NLS_LANG, comme décrit à la rubrique "A propos de l'environnement linguistique et du paramètre NLS_LANG".
Définit les valeurs par défaut des paramètres suivants :
-
NLS_DATE_LANGUAGE, décrit à la rubrique "A propos du paramètres NLS_DATE_LANGUAGE".
-
NLS_SORT, décrit dans la rubrique "A propos du param. NLS_SORT".
L'Example 7-1 décrit la façon dont la définition de NLS_LANGUAGE sur ITALIAN et sur GERMAN affecte les messages serveur et la abréviation de mois.
Pour tester cet exemple dans SQL Developer, entrez les instructions et les requêtes dans la feuille de calcul. Pour plus d'autres informations sur la feuille de calcul, reportez-vous à la section "Exécution de requêtes dans SQL Developer". Les résultats représentés ici sont générés par SQL*Plus ; leur format est légèrement différent dans SQL Developer.
Exemple 7-1 : NLS_LANGUAGE affecte les messages serveur et les abréviations de mois
-
Notez la valeur en cours de NLS_LANGUAGE.
-
Si la valeur de l'étape 1 n'est pas
ITALIAN, modifiez-la :ALTER SESSION SET NLS_LANGUAGE=ITALIAN; -
Interrogez un tableau qui n'existe pas :
SELECT * FROM nonexistent_table;Résultats :
SELECT * FROM nonexistent_table * ERROR at line 1: ORA-00942: tabella o vista inesistente -
Exécutez la requête suivante :
SELECT LAST_NAME, HIRE_DATE FROM EMPLOYEES WHERE EMPLOYEE_ID IN (111, 112, 113);Résultats :
LAST_NAME HIRE_DATE ------------------------- --------- Sciarra 30-SET-97 Urman 07-MAR-98 Popp 07-DIC-99 3 rows selected. -
Définissez la valeur de NLS_LANGUAGE sur
GERMAN:ALTER SESSION SET NLS_LANGUAGE=GERMAN; -
Répétez la requête à partir de l'étape 3.
Résultats :
SELECT * FROM nonexistent_table * ERROR at line 1: ORA-00942: Tabelle oder View nicht vorhanden -
Répétez la requête à partir de l'étape 4.
Résultats :
LAST_NAME HIRE_DATE ------------------------- --------- Sciarra 30-SEP-97 Urman 07-MRZ-98 Popp 07-DEZ-99 3 rows selected. - Rétablissez NLS_LANGUAGE avec la valeur qu'il avait à l'étape 1.
Voir aussi :
-
Guide d'assistance à la globalisation Oracle Database, pour plus d'informations sur le paramètre NLS_LANGUAGE
A propos du paramètre NLS_TERRITORY
Ce paramètre spécifie les conventions par défaut pour le format de date, le format d'horodatage, le séparateur décimal et de groupe, le symbole de devise locale, le symbole de devise ISO et le symbole de devise double.
Indique : conventions par défaut pour les éléments suivants :
-
Format de date
-
Format d'horodatage
-
Marque décimale et séparateur de groupes
-
Symbole monétaire local
-
Symbole monétaire ISO
-
Symbole de devise de retraitement
Valeurs acceptables : tout nom de territoire pris en charge par Oracle. Pour consulter la liste, reportez-vous au Guide de support à la globalisation Oracle Database.
Valeur par défaut : définie par NLS_LANG, comme décrit à la rubrique "A propos de l'environnement linguistique et du paramètre NLS_LANG".
Définit les valeurs par défaut des paramètres suivants :
-
NLS_DATE_FORMAT, décrit à la rubrique "A propos du paramètres NLS_DATE_FORMAT".
-
NLS_TIMESTAMP_FORMAT et NLS_TIMESTAMP_TZ_FORMAT, décrits à la rubrique "A propos des paramètres NLS_TIMESTAMP_FORMAT et NLS_TIMESTAMP_TZ_FORMAT".
-
NLS_NUMERIC_CHARACTERS, décrit à la section "A propos du paramètre NLS_NUMERIC_CHARACTERS". -
NLS_CURRENCY, décrit à la rubrique "A propos du param. NLS_CURRENCY".
-
NLS_ISO_CURRENCY, décrit à la rubrique "A propos du paramètres NLS_ISO_CURRENCY".
-
NLS_DUAL_CURRENCY, décrit à la rubrique "A propos du paramètres NLS_DUAL_CURRENCY".
L'Exemple 7-2 montre comment le fait de définir NLS_TERRITORY sur JAPAN et AMERICA affecte le symbole de devise.
Pour tester cet exemple dans SQL Developer, entrez les instructions et les requêtes dans la feuille de calcul. Pour plus d'autres informations sur la feuille de calcul, reportez-vous à la section "Exécution de requêtes dans SQL Developer". Les résultats représentés ici sont générés par SQL*Plus ; leur format est légèrement différent dans SQL Developer.
Exemple 7-2 : NLS_TERRITORY affecte le symbole de devise
-
Notez la valeur en cours de NLS_TERRITORY.
-
Si la valeur de l'étape 1 n'est pas
JAPAN, modifiez-la :ALTER SESSION SET NLS_TERRITORY=JAPAN; -
Exécutez la requête suivante :
SELECT TO_CHAR(SALARY,'L99G999D99') SALARY FROM EMPLOYEES WHERE EMPLOYEE_ID IN (100, 101, 102);Résultats :
SALARY -------------------- ©24,000.00 ©17,000.00 ©17,000.00 3 rows selected. -
Modifiez la valeur de
NLS_TERRITORYsurAMERICA:ALTER SESSION SET NLS_TERRITORY=AMERICA; -
Répétez la requête à partir de l'étape 3.
Résultats :
SALARY -------------------- $24,000.00 $17,000.00 $17,000.00 3 rows selected. - Rétablissez
NLS_TERRITORYavec la valeur qu'il avait à l'étape 1.
Voir aussi :
-
Guide d'assistance à la globalisation Oracle Database, pour plus d'informations sur le paramètre NLS_TERRITORY
A propos du paramètre NLS_DATE_FORMAT
Ce paramètre indique le format par défaut de date à utiliser avec les fonctions TO_CHAR et TO_DATE.
Indique : format de date par défaut à utiliser avec les fonctions TO_CHAR et TO_DATE (qui sont présentées à la rubrique "Utilisation de fonctions de conversion dans les requêtes").
Valeurs acceptables : tout modèle valide de format de date/heure. Exemple :
NLS_DATE_FORMAT='MM/DD/YYYY'
Pour plus d'informations sur les modèles de format date/heure, reportez-vous au manuel Oracle Database SQL Language Reference.
Valeur par défaut : définie par NLS_TERRITORY, décrite dans la section "A propos du paramètre NLS_TERRITORY".
Il se peut que le format de date par défaut ne corresponde pas à la convention utilisée dans un territoire donné. Pour obtenir des dates dans des formats localisés, vous pouvez utiliser les formats "DS" (date court) et "DL" (date longue) . L'Exemple 7-3 montre comment la définition de NLS_TERRITORY sur AMERICA et FRANCE affecte les formats d'une date par défaut, court et long. L'exemple 7-4 modifie la valeur de NLS_DATE_FORMAT, ce qui remplace la valeur définie par défaut par NLS_TERRITORY.
Pour essayer les exemples de SQL Developer, entrez les instructions et les requêtes dans la feuille de calcul. Pour plus d'autres informations sur la feuille de calcul, reportez-vous à la section "Exécution de requêtes dans SQL Developer". Les résultats représentés ici sont générés par SQL*Plus ; leur format est légèrement différent dans SQL Developer.
Exemple 7-3 : NLS_TERRITORY affecte les formats de date
-
Notez la valeur en cours de NLS_TERRITORY.
-
Si la valeur de l'étape 1 n'est pas
AMERICA, modifiez-la :ALTER SESSION SET NLS_TERRITORY=AMERICA; -
Exécutez la requête suivante :
SELECT hire_date "Default", TO_CHAR(hire_date,'DS') "Short", TO_CHAR(hire_date,'DL') "Long" FROM employees WHERE employee_id IN (111, 112, 113);Résultats :
Default Short Long --------- ---------- ----------------------------- 30-SEP-05 9/30/2005 Friday, September 30, 2005 07-MAR-98 3/7/2006 Tuesday, March 07, 2006 07-DEC-99 12/7/2007 Friday, December 07, 2007 3 rows selected. -
Remplacez la valeur de NLS_TERRITORY par
FRANCE:ALTER SESSION SET NLS_TERRITORY=FRANCE; -
Répétez la requête à partir de l'étape 3.
Résultats :
Default Short Long -------- ---------- --------------------------- 30/09/05 30/09/2005 friday 30 september 2005 07/03/06 07/03/2006 tuesday 7 march 2006 07/12/07 07/12/2007 friday 7 december 2007 3 rows selected.(Pour obtenir les noms des jours et du mois en français, vous devez définir NLS_LANGUAGE ou NLS_DATE_LANGUAGE sur
FRENCHavant d'exécuter la requête.) - Rétablissez NLS_TERRITORY avec la valeur qu'il avait à l'étape 1.
Exemple 7-4 : NLS_DATE_FORMAT remplace NLS_TERRITORY
-
Notez les valeurs en cours de NLS_TERRITORY et de NLS_DATE_FORMAT.
-
Si la valeur de NLS_TERRITORY de l'étape 1 n'est pas
AMERICA, modifiez-la :ALTER SESSION SET NLS_TERRITORY=AMERICA; -
Si la valeur de NLS_DATE_FORMAT à l'étape 1 n'est pas
'Day Month ddth', modifiez-la :ALTER SESSION SET NLS_DATE_FORMAT='Day Month ddth'; -
Exécutez cette requête (étape 3 de l'exemple précédent) :
SELECT hire_date "Default", TO_CHAR(hire_date,'DS') "Short", TO_CHAR(hire_date,'DL') "Long" FROM employees WHERE employee_id IN (111, 112, 113);Résultats :
Default Short Long ------------------------ ---------- ----------------------------- Friday September 30th 9/30/2005 Tuesday, September 30, 2005 Tuesday March 07th 3/7/2006 Saturday, March 07, 2006 Friday December 07th 12/7/2007 Tuesday, December 07, 2007 3 rows selected. - Rétablissez NLS_TERRITORY et NLS_DATE_FORMAT avec les valeurs qu'ils avaient à l'étape 1.
Voir aussi :
-
Oracle Database Globalization Support Guide, pour plus d'informations sur le paramètre NLS_DATE_FORMAT
-
Manuel Oracle Database SQL Language Reference, pour plus d'informations sur la fonction TO_CHAR
-
Manuel Oracle Database SQL Language Reference, pour plus d'informations sur la fonction TO_DATE
A propos du paramètre NLS_DATE_LANGUAGE
Ce paramètre spécifie la langue des noms et abréviations des jours et des mois générés par : les fonctions SQL TO_CHAR et TO_DATE, le format de date par défaut (défini par NLS_DATE_FORMAT) et les symboles des équivalents de langue par défaut AM, PM, AD et BC.
Indique : langue des noms et abréviations de jours et mois produits par les éléments suivants :
-
Fonctions SQL TO_CHAR et TO_DATE (présentées dans la rubrique "Utilisation de fonctions de conversion dans les requêtes")
-
Format de date Par défaut (défini par NLS_DATE_FORMAT, comme décrit à la rubrique "A propos du paramètre NLS_DATE_FORMAT")
-
Symboles des équivalents linguistiques par défaut de AM, PM, AD et BC
Valeurs acceptables : tout nom de langue pris en charge par Oracle. Pour consulter la liste, reportez-vous au Guide de support à la globalisation Oracle Database.
Valeur par défaut : définie par NLS_LANGUAGE, décrite dans la section "A propos du paramètre NLS_LANGUAGE".
L'exemple 7-5 décrit la façon dont la définition de NLS_DATE_LANGUAGE sur FRENCH et sur SWEDISH affecte la date système affichée.
Pour tester cet exemple dans SQL Developer, entrez les instructions et les requêtes dans la feuille de calcul. Pour plus d'autres informations sur la feuille de calcul, reportez-vous à la section "Exécution de requêtes dans SQL Developer". Les résultats représentés ici sont générés par SQL*Plus ; leur format est légèrement différent dans SQL Developer.
Exemple 7-5 : la valeur NLS_DATE_LANGUAGE affecte la valeur SYSDATE affichée
-
Notez la valeur en cours de NLS_DATE_LANGUAGE.
-
Si la valeur de NLS_DATE_LANGUAGE à l'étape 1 n'est pas
FRENCH, modifiez-la :ALTER SESSION SET NLS_DATE_LANGUAGE=FRENCH; -
Exécutez la requête suivante :
SELECT TO_CHAR(SYSDATE, 'Day:Dd Month yyyy') "System Date" FROM DUAL;Résultats :
System Date -------------------------- Vendredi:28 December 2012 -
Remplacez la valeur de NLS_DATE_LANGUAGE par
SWEDISH:ALTER SESSION SET NLS_DATE_LANGUAGE=SWEDISH; -
Répétez la requête à partir de l'étape 3.
Résultats :
System Date ------------------------- Fredag :28 December 2012 - Rétablissez
NLS_DATE_LANGUAGEavec la valeur qu'il avait à l'étape 1.
Voir aussi :
-
Guide Oracle Database de support à la globalisation, pour plus d'informations sur le paramètre NLS_DATE_LANGUAGE
-
Manuel Oracle Database SQL Language Reference, pour plus d'informations sur la fonction TO_CHAR
-
Manuel Oracle Database SQL Language Reference, pour plus d'informations sur la fonction y
A propos des paramètres NLS_TIMESTAMP_FORMAT et NLS_TIMESTAMP_TZ_FORMAT
Ce paramètre spécifie le format de date par défaut pour la bande audio TIMESTAMP et TIMESTAMP WITH LOCAL TIME ZONEaudiotapeTIMESTAMP WITH LOCAL TIME ZONEaudiotape.
Indiquez : format de date par défaut pour :
-
Bande audio TIMESTAMP
-
TIMESTAMP AVEC TEMPS LOCAL ZONEaudiotape
Valeurs acceptables : tout modèle valide de format de date/heure. Exemple :
NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH:MI:SS.FF'
NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH:MI:SS.FF TZH:TZM'
Pour plus d'informations sur les modèles de format date/heure, reportez-vous au manuel Oracle Database SQL Language Reference.
Valeur par défaut : définie par NLS_TERRITORY, décrite dans la section "A propos du paramètre NLS_TERRITORY".
Voir aussi :
-
Oracle Database Globalization Support Guide, pour plus d'informations sur le paramètre NLS_TIMESTAMP_FORMAT
-
Guide Oracle Database de support à la globalisation, pour plus d'informations sur le paramètre NLS_TIMESTAMP_TZ_FORMAT
-
Guide de support à la globalisation Oracle Database, pour plus d'informations sur les types de données date/heure et la prise en charge du fuseau horaire
-
Manuel Oracle Database SQL Language Reference, pour plus d'informations sur la fonction TIMESTAMP.
-
Manuel Oracle Database SQL Language Reference, pour plus d'informations sur le type du données TIMESTAMP WITH LOCAL TIME ZONE
A propos du paramètre NLS_CALENDAR
Ce paramètre indique le système de calendrier de la base de données.
Indique : système calendaire de la base de données.
Valeurs acceptables : tout système de calendrier pris en charge par Oracle. Pour consulter la liste, reportez-vous au Guide de support à la globalisation Oracle Database.
Valeur par défaut : Gregorian
L'Exemple 7-6 montre comment la définition de NLS_CALENDAR sur 'English Hijrah' et Gregorian affecte la date système affichée.
Pour tester cet exemple dans SQL Developer, entrez les instructions et les requêtes dans la feuille de calcul. Pour plus d'autres informations sur la feuille de calcul, reportez-vous à la section "Exécution de requêtes dans SQL Developer". Les résultats représentés ici sont générés par SQL*Plus ; leur format est légèrement différent dans SQL Developer.
Exemple 7-6 : la valeur NLS_CALENDAR affecte la valeur SYSDATE affichée
-
Notez la valeur en cours de NLS_CALENDAR.
-
Si la valeur de NLS_CALENDAR à l'étape 1 n'est pas
'English Hijrah', modifiez-la :ALTER SESSION SET NLS_CALENDAR='English Hijrah'; -
Exécutez la requête suivante :
SELECT SYSDATE FROM DUAL;Résultats :
SYSDATE ------------------------- 17 Safar 1434 -
Remplacez la valeur de NLS_CALENDAR par
'Gregorian':ALTER SESSION SET NLS_CALENDAR='Gregorian'; -
Exécutez la requête suivante :
SELECT SYSDATE FROM DUAL;Résultats :
SYSDATE --------- 31-DEC-12 - Rétablissez NLS_CALENDAR avec la valeur qu'il avait à l'étape 1.
Voir aussi :
-
Guide du support à la globalisation Oracle Database, pour plus d'informations sur le paramètre
NLS_CALENDAR
A propos du paramètre NLS_NUMERIC_CHARACTERS
Ce paramètre spécifie le caractère décimal (qui séduit les parties entière et décimale d'un nombre) et le séparateur de groupes (qui sé sépare les groupes entiers pour distinguer des milliers et des millions, par exemple). Le séparateur des groupes est le caractère renvoyé par l'élément de format numérique G.
Indique : caractère décimal (qui sépare les parties entière et décimale d'un nombre) et séparateur de groupes (qui sépare les groupes entiers pour distinguer les milliers et les millions, par exemple). Le séparateur des groupes est le caractère renvoyé par l'élément de format numérique G.
Valeurs acceptables : toute paire de caractères à un octet différents, n'incluant pas les caractères suivants :
-
Un caractère numérique
-
Plus (+)
-
Moins (-)
-
Inférieur à (<)
-
Supérieur à (>)
Valeur par défaut : définie par NLS_TERRITORY, décrit dans la section "A propos du paramètre NLS_TERRITORY".
Dans une instruction SQL, vous pouvez représenter un nombre sous deux formes distinctes :
-
Littéral numérique
Un littéral numérique ne figure pas entre guillemets, utilise toujours un point (.) comme caractère décimal et ne contient jamais de séparateur de groupes.
-
Littéral texte
Un littéral texte figure entre guillemets simples. Elle est convertie en nombre implicitement ou explicitement, si nécessaire, en fonction des paramètres NLS en cours.
L'Exemple 7-7 montre comment deux paramètres NLS_NUMERIC_CHARACTERS différents influent sur l'affichage du résultat de la même requête.
Pour tester cet exemple dans SQL Developer, entrez les instructions et les requêtes dans la feuille de calcul. Pour plus d'autres informations sur la feuille de calcul, reportez-vous à la section "Exécution de requêtes dans SQL Developer". Les résultats représentés ici sont générés par SQL*Plus ; leur format est légèrement différent dans SQL Developer.
Exemple 7-7 : NLS_NUMERIC_CHARACTERS modifie la marque décimale et le séparateur de groupe
-
Notez la valeur en cours de NLS_NUMERIC_CHARACTERS.
-
Si la valeur de NLS_NUMERIC_CHARACTERS de l'étape 1 n'est pas
",."(la valeur décimale est la virgule et la valeur du séparateur de groupe est le points), modifiez-la :ALTER SESSION SET NLS_NUMERIC_CHARACTERS=",."; -
Exécutez la requête suivante :
SELECT TO_CHAR(4000, '9G999D99') "Number" FROM DUAL;Résultats :
Number --------- 4.000,00 -
Modifiez la valeur de NLS_NUMERIC_CHARACTERS sur
",."(la virgule décimale est la virgule et la virgule le séparateur des groupes) :ALTER SESSION SET NLS_NUMERIC_CHARACTERS=".,"; -
Exécutez la requête suivante :
SELECT TO_CHAR(4000, '9G999D99') "Number" FROM DUAL;Résultats :
Number --------- 4,000.00 - Rétablissez NLS_NUMERIC_CHARACTERS avec la valeur qu'il avait à l'étape 1.
Voir aussi :
-
Oracle Database Globalization Support Guide, pour plus d'informations sur le paramètre NLS_NUMERIC_CHARACTERS
A propos du paramètre NLS_CURRENCY
Ce paramètre spécifie le symbole de la devise locale (la chaîne de caractères renvoyée par l'élément du format numérique L).
Indique : symbole monétaire local (chaîne de caractères renvoyée par l'élément de format numérique L).
Valeurs acceptables : toute chaîne de symbole monétaire valide.
Valeur par défaut : définie par NLS_TERRITORY, décrite dans la section "A propos du paramètre NLS_TERRITORY".
L'exemple 7-8 modifie la valeur de NLS_CURRENCY, ce qui remplace la valeur définie par défaut par NLS_TERRITORY. Pour tester cet exemple dans SQL Developer, entrez les instructions et les requêtes dans la feuille de calcul. Pour plus d'autres informations sur la feuille de calcul, reportez-vous à la section "Exécution de requêtes dans SQL Developer". Les résultats représentés ici sont générés par SQL*Plus ; leur format est légèrement différent dans SQL Developer.
Exemple 7-8 Remplacements de NLS_CURRENCY NLS_TERRITORY
-
Notez les valeurs en cours de NLS_TERRITORY et de NLS_CURRENCY.
-
Si la valeur de NLS_TERRITORY de l'étape 1 n'est pas
AMERICA, modifiez-la :ALTER SESSION SET NLS_TERRITORY=AMERICA; -
Exécutez la requête suivante :
SELECT TO_CHAR(salary, 'L099G999D99') "Salary" FROM EMPLOYEES WHERE salary > 13000;Résultats :
Salary --------------------- $024,000.00 $017,000.00 $017,000.00 $014,000.00 $013,500.00 -
Modifiez la valeur de NLS_CURRENCY en
'©':ALTER SESSION SET NLS_CURRENCY='©'; -
Exécutez la requête suivante :
SELECT TO_CHAR(salary, 'L099G999D99') "Salary" FROM EMPLOYEES WHERE salary > 13000;Résultats :
Salary --------------------- ©024,000.00 ©017,000.00 ©017,000.00 ©014,000.00 ©013,500.00 - Rétablissez NLS_TERRITORY et NLS_CURRENCY avec les valeurs qu'ils avaient à l'étape 1.
Voir aussi :
-
Guide du support à la globalisation Oracle Database, pour plus d'informations sur le paramètre NLS_CURRENCY
A propos du paramètre NLS_ISO_CURRENCY
Ce paramètre spécifie le symbole de devise ISO (chaîne renvoyée par l'élément de format numérique C).
Indique : symbole monétaire ISO (chaîne de caractères renvoyée par l'élément de format numérique C).
Valeurs acceptables : toute chaîne de symbole monétaire valide.
Valeur par défaut : définie par NLS_TERRITORY, décrit dans la section "A propos du paramètre NLS_TERRITORY".
Les symboles de devise locale peuvent être ambiguës tandis que les symboles de devise ISO sont uniques. L'exemple 7-9 montre que les territoires AUSTRALIA et AMERICA possèdent le même symbole d'une devise locale mais que des symboles de devise ISO différents sont différents.
Pour tester cet exemple dans SQL Developer, entrez les instructions et les requêtes dans la feuille de calcul. Pour plus d'autres informations sur la feuille de calcul, reportez-vous à la section "Exécution de requêtes dans SQL Developer". Les résultats représentés ici sont générés par SQL*Plus ; leur format est légèrement différent dans SQL Developer.
Exemple 7-9 NLS_ISO_CURRENCY
-
Notez les valeurs en cours de NLS_TERRITORY et de NLS_ISO_CURRENCY.
-
Si la valeur de NLS_TERRITORY à l'étape 1 n'est pas
AUSTRALIA, modifiez-la :ALTER SESSION SET NLS_TERRITORY=AUSTRALIA; -
Exécutez la requête suivante :
SELECT TO_CHAR(salary, 'L099G999D99') "Local", TO_CHAR(salary, 'C099G999D99') "ISO" FROM EMPLOYEES WHERE salary > 15000;Résultats :
Local ISO --------------------- ------------------ $024,000.00 AUD024,000.00 $017,000.00 AUD017,000.00 $017,000.00 AUD017,000.00 -
Remplacez la valeur de NLS_TERRITORY par
AMERICA:ALTER SESSION SET NLS_TERRITORY=AMERICA; -
Exécutez la requête suivante :
SELECT TO_CHAR(salary, 'L099G999D99') "Local", TO_CHAR(salary, 'C099G999D99') "ISO" FROM EMPLOYEES WHERE salary > 15000;Résultats :
Local ISO --------------------- ------------------ $024,000.00 USD024,000.00 $017,000.00 USD017,000.00 $017,000.00 USD017,000.00 - Rétablissez NLS_TERRITORY et NLS_ISO_CURRENCY avec les valeurs qu'ils avaient à l'étape 1.
Voir aussi :
-
Guide Oracle Database de support à la globalisation, pour plus d'informations sur le paramètre NLS_ISO_CURRENCY
A propos du paramètre NLS_DUAL_CURRENCY
Ce paramètre spécifie le symbole d'euro double (introduit pour prendre en charge le symbole d'euro lors du passage à l'euro).
Indique : symbole d'euro double (introduit pour prendre en charge le symbole d'euro au cours de la période d'euro vers l'euro).
Valeurs acceptables : toute chaîne de symbole monétaire valide.
Valeur par défaut : définie par NLS_TERRITORY, décrite dans la section "A propos du paramètre NLS_TERRITORY".
Voir aussi :
-
Guide Oracle Database de support à la globalisation, pour plus d'informations sur le paramètre NLS_DUAL_CURRENCY
A propos du paramètre NLS_SORT
Ce paramètre indique l'ordre de tri (ordre de regroupement) linguistique pour les requêtes qui comportent la clause ORDER BY.
Indique : ordre de tri linguistique (ordre de regroupement) pour les requêtes qui comportent la clause ORDER BY.
Valeurs acceptables:
-
BINARYL'ordre de tri est basé sur l'ordre de séquence binaire du jeu de caractères de la base de données ou du jeu de caractères national, en fonction du type de données.
-
Tout nom de tri linguistique pris en charge par Oracle
L'ordre de tri est basé sur l'ordre du nom de tri linguistique spécifié. Le nom de tri linguistique est généralement le nom de la langue, mais il existe des exceptions. Pour obtenir une liste des noms de tri linguistique pris en charge, reportez-vous au Guide de support à la globalisation Oracle Database.
Valeur par défaut : définie par NLS_LANGUAGE, décrite dans la section "A propos du paramètre NLS_LANGUAGE".
L'exemple 7-10 décrit comment deux paramètres NLS_SORT différents affectent le résultat affiché pour la même requête. Il s'agit des paramètres BINARY et Espagnol traditionnel (SPANISH_M). L'espagnol traditionnel traite ch, ll et ñ comme des lettres qui suivent c, l et n, respectivement.
Pour tester cet exemple dans SQL Developer, entrez les instructions et les requêtes dans la feuille de calcul. Pour plus d'autres informations sur la feuille de calcul, reportez-vous à la section "Exécution de requêtes dans SQL Developer". Les résultats représentés ici sont générés par SQL*Plus ; leur format est légèrement différent dans SQL Developer.
Les tris ne sont pas sensibles à la casse et aux accents
Les opérations effectuées dans Oracle Database sont sensibles à la casse et à l'accentuation des caractères. Pour procéder au tri non sensible à l' casse, ajoutez _CI à la valeur du paramètre NLS_SORT (par exemple, BINARY_CI ou GERMAN_CI). Pour effectuer un tri qui ne respecte pas la casse et l'accentuation des caractères, ajoutez _AI à la valeur du paramètre NLS_SORT (par exemple, BINARY_AI ou FRENCH_M_AI).
Exemple 7-10 : NLS_SORT affecte l'ordre de tri linguistique
-
Créez une table de mots espagnols :
CREATE TABLE temp (name VARCHAR2(15)); -
Remplissez la table avec des mots espagnols :
INSERT INTO temp (name) VALUES ('laguna'); INSERT INTO temp (name) VALUES ('llama'); INSERT INTO temp (name) VALUES ('loco'); -
Notez la valeur en cours de NLS_SORT.
-
Si la valeur de NLS_SORT de l'étape 3 n'est pas
BINARY, modifiez-la :ALTER SESSION SET NLS_SORT=BINARY; -
Exécutez la requête suivante :
SELECT * FROM temp ORDER BY name;Résultats :
NAME --------------- laguna llama loco -
Modifiez la valeur de NLS_SORT sur
SPANISH_M(espagnol traditionnel) :ALTER SESSION SET NLS_SORT=SPANISH_M; -
Répétez la requête à partir de l'étape 5.
Résultats :
NAME --------------- laguna loco llama -
Supprimez la table :
DROP TABLE temp; - Rétablissez NLS_SORT avec la valeur qu'il avait à l'étape 3.
Voir aussi :
-
Guide du support à la globalisation Oracle Database, pour plus d'informations sur le paramètre
NLS_SORT -
Guide de support à la globalisation Oracle Database, pour plus d'informations sur les tris non sensibles à la casse et à l'accentuation des caractères
A propos du paramètre NLS_COMP
Ce paramètre indique le comportement de comparaison de caractères des opérations SQL.
Indique : comportement de comparaison de caractères des opérations SQL.
Valeurs acceptables:
-
BINARYSQL compare les codes binaires des caractères. Un caractère est supérieur à un autre s'il possède un code binaire plus élevé.
-
LINGUISTICSQL effectue une comparaison linguistique basée sur la valeur du paramètre
NLS_SORT, décrit à la section "A propos du paramètre NLS_SORT". -
ANSICette valeur est fournie uniquement pour les compatibilités amont.
Valeur par défaut : BINARY
L'exemple 7-11 illustre comment le résultat d'une requête peut dépendre du paramètre NLS_COMP.
Pour tester cet exemple dans SQL Developer, entrez les instructions et les requêtes dans la feuille de calcul. Pour plus d'autres informations sur la feuille de calcul, reportez-vous à la section "Exécution de requêtes dans SQL Developer". Les résultats représentés ici sont générés par SQL*Plus ; leur format est légèrement différent dans SQL Developer.
L'exemple 7-11 NLS_COMP a des conséquences sur la comparaison de caractères SQL
-
Notez les valeurs en cours de NLS_SORT et NLS_COMP.
-
Si les valeurs de NLS_SORT et de NLS_COMP à l'étape 1 ne sont pas respectivement
SPANISH_M(espagnol traditionnel) etBINARY, modifiez-les :ALTER SESSION SET NLS_SORT=SPANISH_M NLS_COMP=BINARY; -
Exécutez la requête suivante :
SELECT LAST_NAME FROM EMPLOYEES WHERE LAST_NAME LIKE 'C%';Résultats :
LAST_NAME ------------------------- Cabrio Cambrault Cambrault Chen Chung Colmenares 6 rows selected -
Modifiez la valeur de NLS_COMP en
LINGUISTIC:ALTER SESSION SET NLS_COMP=LINGUISTIC; -
Répétez la requête à partir de l'étape 3.
Résultats :
LAST_NAME ------------------------- Cabrio Cambrault Cambrault Colmenares 4 rows selectedCette fois, Chen et Chung ne sont pas renvoyés car l'espagnol traditionnel traite
chcomme un caractère unique qui suitc. - Rétablissez NLS_SORT et NLS_COMP avec les valeurs qu'ils possédaient à l'étape 1.
Voir aussi :
-
Guide du support à la globalisation Oracle Database, pour plus d'informations sur le paramètre NLS_COMP
A propos du paramètre NLS_LENGTH_SEMANTICS
Ce paramètre spécifie la sémantique de la longueur pour des colonnes de types de données alphanumériques CHAR, VARCHAR2 et LONG, c'est-à-dire si ces colonnes sont spécifiées en octets ou en caractères. En d'autres termes, ce paramètre indique si ces colonnes sont spécifiées en octets ou en caractères (s'applique uniquement aux colonnes qui sont déclarées après la définition du paramètre).
Spécifie : sémantique de longueur pour des colonnes de types de données alphanumériques CHAR, VARCHAR2 et LONG, c'est-à-dire que ces colonnes sont spécifiées en octets ou en caractères. En d'autres termes, ce paramètre indique si ces colonnes sont spécifiées en octets ou en caractères (s'applique uniquement aux colonnes qui sont déclarées après la définition du paramètre).
Valeurs acceptables:
-
BYTELes nouvelles colonnes CHAR, VARCHAR2 et LONG sont spécifiées en octets.
-
CHARLes nouvelles colonnes CHAR, VARCHAR2 et LONG sont spécifiées en caractères.
Valeur par défaut : BYTE
Pour tester cet exemple dans SQL Developer, entrez les instructions et les requêtes dans la feuille de calcul. Pour plus d'autres informations sur la feuille de calcul, reportez-vous à la section "Exécution de requêtes dans SQL Developer". Les résultats représentés ici sont générés par SQL*Plus ; leur format est légèrement différent dans SQL Developer.
Exemple 7-12 NLS_LENGTH_SEMANTICS a un impact sur l'emplacement de stockage de la Colonne VARCHAR2
-
Notez les valeurs en cours de NLS_LENGTH_SEMANTICS.
-
Si la valeur de NLS_LENGTH_SEMANTICS à l'étape 1 n'est pas
BYTE, modifiez-la :ALTER SESSION SET NLS_LENGTH_SEMANTICS=BYTE; -
Créez une table avec une colonne VARCHAR2 :
CREATE TABLE SEMANTICS_BYTE(SOME_DATA VARCHAR2(20)); -
Cliquez sur l'onglet Connexions.
-
Dans le cadre Connexions, développez hr_conn.
-
Dans la liste des types d'objet de schéma, développez Tables.
-
Dans la liste des tables, sélectionnez SEMANTICS_BYTE.
A droite du volet Connexions, le panneau Colonnes affiche SOME_DATA pour la colonne Nom de colonne et le type des données est
VARCHAR2(20 BYTE). -
Modifiez la valeur de NLS_LENGTH_SEMANTICS en
CHAR:ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR; -
Créez une autre table avec une colonne VARCHAR2 :
CREATE TABLE SEMANTICS_CHAR(SOME_DATA VARCHAR2(20)); -
Dans le cadre Connexions, cliquez sur l'icône Actualiser.
La liste des tables comporte désormais SEMANTICS_CHAR.
-
Sélectionnez SEMANTICS_CHAR.
Le panneau Colonnes affiche SOME_DATA pour la colonne Nom et le type de données est
VARCHAR2(20 CHAR). -
Sélectionnez à nouveau SEMANTICS_BYTE.
Le panneau Colonnes affiche le nom de colonne SOME_DATA pour que le type de données soit toujours
VARCHAR2(20 BYTE). - Rétablissez la valeur de NLS_LENGTH_SEMANTICS avec la valeur qu'il avait à l'étape 1.
Voir aussi :
-
Oracle Database Globalization Support Guide, pour plus d'informations sur le paramètre NLS_LENGTH_SEMANTICS