V databázi Oracle lze k určení způsobu zobrazení měn pro aktuální relaci použít následující parametry NLS:
NLS_CURRENCY
určuje řetězec, který se má použít jako symbol místní měny proL
prvek formátu čísla.NLS_ISO_CURRENCY
určuje, co se má použít proC
prvek formátu.NLS_DUAL_CURRENCY
určuje, co se má použít proU
prvek formátu.
Výchozí hodnota pro tyto položky je určena NLS_TERRITORY
parametr.
L
, C
a U
Prvky číselného formátu lze použít ve funkcích jako TO_CHAR()
pro formátování čísla jako měny.
Jak vrátit symbol měny
Jaký symbol měny používá vaše aktuální relace, můžete zjistit dotazem na V$NLS_PARAMETERS
zobrazit.
Příklad:
SELECT
PARAMETER,
VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
'NLS_TERRITORY',
'NLS_CURRENCY',
'NLS_ISO_CURRENCY',
'NLS_DUAL_CURRENCY'
);
Výsledek:
PARAMETER VALUE ____________________ __________ NLS_TERRITORY GERMANY NLS_CURRENCY € NLS_ISO_CURRENCY GERMANY NLS_DUAL_CURRENCY €
Výchozí hodnota těchto parametrů je odvozena z NLS_TERRITORY
parametr. Zde je moje aktuální nastavení tohoto parametru:
SELECT VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER = 'NLS_TERRITORY';
Výsledek:
GERMANY
Změnou tohoto parametru se hodnota ostatních parametrů aktualizuje na výchozí hodnoty pro dané území (pokud nové území nepoužívá pro daný parametr stejnou hodnotu jako staré území).
Každý parametr však můžete změnit také přímo, což vám umožní mít jiný symbol měny, než je výchozí pro dané území.
Formátování prvků v akci
Zde je příklad, kde lze použít výše uvedené parametry 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;
Výsledek:
L C U ________________ _____________ ______________ kr45 DKK45 €45