Oracle
 sql >> Base de données >  >> RDS >> Oracle

Découvrez quel symbole monétaire votre session utilise dans Oracle

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 le L élément de format numérique.
  • NLS_ISO_CURRENCY détermine quoi utiliser pour le C élément de format.
  • NLS_DUAL_CURRENCY spécifie ce qu'il faut utiliser pour le U é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