In Oracle Database, è possibile utilizzare i seguenti parametri NLS per determinare come visualizzare le valute per la sessione corrente:
NLS_CURRENCYspecifica la stringa da utilizzare come simbolo di valuta locale per laLelemento formato numero.NLS_ISO_CURRENCYdetermina cosa usare per laCelemento di formato.NLS_DUAL_CURRENCYspecifica cosa usare per laUelemento 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