В Oracle Database следните NLS параметри могат да се използват, за да се определи как се показват валутите за текущата сесия:
NLS_CURRENCYопределя низа, който да се използва като символ на местна валута заLелемент с числов формат.NLS_ISO_CURRENCYопределя какво да се използва заCформатен елемент.NLS_DUAL_CURRENCYуказва какво да се използва заUформатен елемент.
Стойността по подразбиране за тях се определя от NLS_TERRITORY параметър.
L , C и U Елементите на числовия формат могат да се използват във функции като TO_CHAR() за да форматирате число като валута.
Как да върна символа за валута
Можете да разберете коя валута използва текущата ви сесия, като направите заявка за V$NLS_PARAMETERS преглед.
Пример:
SELECT
PARAMETER,
VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
'NLS_TERRITORY',
'NLS_CURRENCY',
'NLS_ISO_CURRENCY',
'NLS_DUAL_CURRENCY'
); Резултат:
PARAMETER VALUE ____________________ __________ NLS_TERRITORY GERMANY NLS_CURRENCY € NLS_ISO_CURRENCY GERMANY NLS_DUAL_CURRENCY €
Стойността по подразбиране на тези параметри се извлича от NLS_TERRITORY параметър. Ето моята текуща настройка за този параметър:
SELECT VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER = 'NLS_TERRITORY'; Резултат:
GERMANY
Чрез промяна на този параметър стойността на другите параметри ще бъде актуализирана до стойностите по подразбиране за тази територия (освен ако новата територия не използва същата стойност като старата територия за даден параметър).
Можете обаче да промените всеки параметър директно, което ви позволява да имате различен символ за валута от този по подразбиране за тази територия.
Форматните елементи в действие
Ето пример за това къде могат да се използват горните 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; Резултат:
L C U
________________ _____________ ______________
kr45 DKK45 €45