I Oracle Database kan följande NLS-parametrar användas för att bestämma hur valutor visas för den aktuella sessionen:
NLS_CURRENCY
anger strängen som ska användas som lokal valutasymbol förL
nummerformatelement.NLS_ISO_CURRENCY
bestämmer vad som ska användas förC
formatelement.NLS_DUAL_CURRENCY
anger vad som ska användas förU
formatelement.
Standardvärdet för dessa bestäms av NLS_TERRITORY
parameter.
L
, C
och U
talformatelement kan användas i funktioner som TO_CHAR()
för att formatera ett tal som en valuta.
Hur du returnerar valutasymbolen
Du kan ta reda på vilken valutasymbol din nuvarande session använder genom att fråga V$NLS_PARAMETERS
visa.
Exempel:
SELECT
PARAMETER,
VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
'NLS_TERRITORY',
'NLS_CURRENCY',
'NLS_ISO_CURRENCY',
'NLS_DUAL_CURRENCY'
);
Resultat:
PARAMETER VALUE ____________________ __________ NLS_TERRITORY GERMANY NLS_CURRENCY € NLS_ISO_CURRENCY GERMANY NLS_DUAL_CURRENCY €
Standardvärdet för dessa parametrar härleds av NLS_TERRITORY
parameter. Här är min nuvarande inställning för den parametern:
SELECT VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER = 'NLS_TERRITORY';
Resultat:
GERMANY
Genom att ändra den parametern kommer värdet på de andra parametrarna att uppdateras till standardvärdena för det territoriet (såvida inte det nya området använder samma värde som det gamla området för en given parameter).
Men du kan också ändra varje parameter direkt, vilket gör att du kan ha en annan valutasymbol än standarden för det området.
Formatera element i funktion
Här är ett exempel på var ovanstående NLS-parametrar kan komma till användning:
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;
Resultat:
L C U ________________ _____________ ______________ kr45 DKK45 €45