I Oracle Database kan följande NLS-parametrar användas för att bestämma hur valutor visas för den aktuella sessionen:
NLS_CURRENCYanger strängen som ska användas som lokal valutasymbol förLnummerformatelement.NLS_ISO_CURRENCYbestämmer vad som ska användas förCformatelement.NLS_DUAL_CURRENCYanger vad som ska användas förUformatelement.
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