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_CURRENCYokreśla ciąg znaków, który ma być używany jako symbol waluty lokalnej dlaLelement formatu liczb.NLS_ISO_CURRENCYokreśla, czego użyć dlaCelement formatu.NLS_DUAL_CURRENCYokreśla, czego użyć dlaUelement 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