In Oracle Database können die folgenden NLS-Parameter verwendet werden, um festzulegen, wie Währungen für die aktuelle Sitzung angezeigt werden:
NLS_CURRENCY
gibt die Zeichenfolge an, die als lokales Währungssymbol fürL
verwendet werden soll Zahlenformatelement.NLS_ISO_CURRENCY
bestimmt, was fürC
verwendet werden soll format-Element.NLS_DUAL_CURRENCY
gibt an, was fürU
verwendet werden soll format-Element.
Der Standardwert dafür wird durch das NLS_TERRITORY
bestimmt Parameter.
Das L
, C
, und U
Zahlenformatelemente können in Funktionen wie TO_CHAR()
verwendet werden um eine Zahl als Währung zu formatieren.
So geben Sie das Währungssymbol zurück
Sie können herausfinden, welches Währungssymbol Ihre aktuelle Sitzung verwendet, indem Sie V$NLS_PARAMETERS
abfragen ansehen.
Beispiel:
SELECT
PARAMETER,
VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
'NLS_TERRITORY',
'NLS_CURRENCY',
'NLS_ISO_CURRENCY',
'NLS_DUAL_CURRENCY'
);
Ergebnis:
PARAMETER VALUE ____________________ __________ NLS_TERRITORY GERMANY NLS_CURRENCY € NLS_ISO_CURRENCY GERMANY NLS_DUAL_CURRENCY €
Der Standardwert dieser Parameter wird von NLS_TERRITORY
abgeleitet Parameter. Hier ist meine aktuelle Einstellung für diesen Parameter:
SELECT VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER = 'NLS_TERRITORY';
Ergebnis:
GERMANY
Durch Ändern dieses Parameters werden die Werte der anderen Parameter auf die Standardwerte für dieses Gebiet aktualisiert (es sei denn, das neue Gebiet verwendet denselben Wert wie das alte Gebiet für einen bestimmten Parameter).
Sie können jedoch auch jeden Parameter direkt ändern, wodurch Sie ein anderes Währungssymbol als das Standardwährungssymbol für dieses Gebiet haben können.
Formatelemente in Aktion
Hier ist ein Beispiel dafür, wo die oben genannten NLS-Parameter verwendet werden können:
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;
Ergebnis:
L C U ________________ _____________ ______________ kr45 DKK45 €45