Dans Oracle Database, les paramètres NLS suivants peuvent être utilisés pour déterminer comment les devises sont affichées pour la session en cours :
NLS_CURRENCY
spécifie la chaîne à utiliser comme symbole de devise locale pour leL
élément de format numérique.NLS_ISO_CURRENCY
détermine quoi utiliser pour leC
élément de format.NLS_DUAL_CURRENCY
spécifie ce qu'il faut utiliser pour leU
élément de format.
La valeur par défaut pour ceux-ci est déterminée par le NLS_TERRITORY
paramètre.
Le L
, C
, et U
les éléments de format numérique peuvent être utilisés dans des fonctions telles que TO_CHAR()
pour formater un nombre en tant que devise.
Comment renvoyer le symbole monétaire
Vous pouvez savoir quel symbole de devise votre session actuelle utilise en interrogeant le V$NLS_PARAMETERS
vue.
Exemple :
SELECT
PARAMETER,
VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
'NLS_TERRITORY',
'NLS_CURRENCY',
'NLS_ISO_CURRENCY',
'NLS_DUAL_CURRENCY'
);
Résultat :
PARAMETER VALUE ____________________ __________ NLS_TERRITORY GERMANY NLS_CURRENCY € NLS_ISO_CURRENCY GERMANY NLS_DUAL_CURRENCY €
La valeur par défaut de ces paramètres est dérivée du NLS_TERRITORY
paramètre. Voici mon réglage actuel pour ce paramètre :
SELECT VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER = 'NLS_TERRITORY';
Résultat :
GERMANY
En modifiant ce paramètre, la valeur des autres paramètres sera mise à jour aux valeurs par défaut pour ce territoire (sauf si le nouveau territoire utilise la même valeur que l'ancien territoire pour un paramètre donné).
Cependant, vous pouvez également modifier directement chaque paramètre, ce qui vous permet d'avoir un symbole monétaire différent de celui par défaut pour ce territoire.
Éléments de format en action
Voici un exemple d'utilisation des paramètres NLS ci-dessus :
ALTER SESSION SET NLS_TERRITORY = 'DENMARK';
SELECT
TO_CHAR(45, 'L99') AS "L",
TO_CHAR(45, 'C99') AS "C",
TO_CHAR(45, 'U99') AS "U"
FROM DUAL;
Résultat :
L C U ________________ _____________ ______________ kr45 DKK45 €45