In Oracle Database, è possibile utilizzare i seguenti parametri NLS per determinare come visualizzare le valute per la sessione corrente:
NLS_CURRENCY
specifica la stringa da utilizzare come simbolo di valuta locale per laL
elemento formato numero.NLS_ISO_CURRENCY
determina cosa usare per laC
elemento di formato.NLS_DUAL_CURRENCY
specifica cosa usare per laU
elemento di formato.
Il valore predefinito per questi è determinato da NLS_TERRITORY
parametro.
La L
, C
e U
gli elementi di formato numerico possono essere utilizzati in funzioni come TO_CHAR()
per formattare un numero come valuta.
Come restituire il simbolo della valuta
Puoi scoprire quale simbolo di valuta utilizza la tua sessione corrente interrogando il V$NLS_PARAMETERS
visualizza.
Esempio:
SELECT
PARAMETER,
VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
'NLS_TERRITORY',
'NLS_CURRENCY',
'NLS_ISO_CURRENCY',
'NLS_DUAL_CURRENCY'
);
Risultato:
PARAMETER VALUE ____________________ __________ NLS_TERRITORY GERMANY NLS_CURRENCY € NLS_ISO_CURRENCY GERMANY NLS_DUAL_CURRENCY €
Il valore predefinito di questi parametri è derivato da NLS_TERRITORY
parametro. Ecco la mia impostazione attuale per quel parametro:
SELECT VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER = 'NLS_TERRITORY';
Risultato:
GERMANY
Modificando quel parametro, il valore degli altri parametri verrà aggiornato ai valori predefiniti per quel territorio (a meno che il nuovo territorio utilizzi lo stesso valore del vecchio territorio per un dato parametro).
Tuttavia, puoi anche modificare direttamente ciascun parametro, il che ti consente di avere un simbolo di valuta diverso da quello predefinito per quel territorio.
Formatta elementi in azione
Ecco un esempio di dove possono essere utilizzati i parametri NLS di cui sopra:
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;
Risultato:
L C U ________________ _____________ ______________ kr45 DKK45 €45