W bazie danych Oracle następujące parametry NLS mogą być używane do określenia sposobu wyświetlania walut w bieżącej sesji:
NLS_CURRENCY
określa ciąg znaków, który ma być używany jako symbol waluty lokalnej dlaL
element formatu liczb.NLS_ISO_CURRENCY
określa, czego użyć dlaC
element formatu.NLS_DUAL_CURRENCY
określa, czego użyć dlaU
element formatu.
Domyślna wartość dla nich jest określona przez NLS_TERRITORY
parametr.
L
, C
i U
elementy formatu liczb mogą być używane w funkcjach takich jak TO_CHAR()
aby sformatować liczbę jako walutę.
Jak zwrócić symbol waluty
Możesz dowiedzieć się, jakiego symbolu waluty używa Twoja bieżąca sesja, wysyłając zapytanie do V$NLS_PARAMETERS
widok.
Przykład:
SELECT
PARAMETER,
VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
'NLS_TERRITORY',
'NLS_CURRENCY',
'NLS_ISO_CURRENCY',
'NLS_DUAL_CURRENCY'
);
Wynik:
PARAMETER VALUE ____________________ __________ NLS_TERRITORY GERMANY NLS_CURRENCY € NLS_ISO_CURRENCY GERMANY NLS_DUAL_CURRENCY €
Domyślna wartość tych parametrów pochodzi z NLS_TERRITORY
parametr. Oto moje obecne ustawienie dla tego parametru:
SELECT VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER = 'NLS_TERRITORY';
Wynik:
GERMANY
Zmieniając ten parametr, wartość innych parametrów zostanie zaktualizowana do wartości domyślnych dla tego terytorium (chyba że nowe terytorium używa tej samej wartości co stare terytorium dla danego parametru).
Możesz jednak również zmienić każdy parametr bezpośrednio, co pozwala mieć inny symbol waluty niż domyślny dla tego terytorium.
Sformatuj elementy w działaniu
Oto przykład zastosowania powyższych parametrów NLS:
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;
Wynik:
L C U ________________ _____________ ______________ kr45 DKK45 €45