En Oracle Database, se pueden usar los siguientes parámetros NLS para determinar cómo se muestran las monedas para la sesión actual:
NLS_CURRENCY
especifica la cadena que se utilizará como símbolo de moneda local paraL
elemento de formato de número.NLS_ISO_CURRENCY
determina qué usar para elC
elemento de formato.NLS_DUAL_CURRENCY
especifica qué usar para laU
elemento de formato.
El valor predeterminado para estos está determinado por el NLS_TERRITORY
parámetro.
El L
, C
y U
los elementos de formato numérico se pueden usar en funciones como TO_CHAR()
para dar formato a un número como moneda.
Cómo devolver el símbolo de moneda
Puede averiguar qué símbolo de moneda usa su sesión actual consultando V$NLS_PARAMETERS
ver.
Ejemplo:
SELECT
PARAMETER,
VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
'NLS_TERRITORY',
'NLS_CURRENCY',
'NLS_ISO_CURRENCY',
'NLS_DUAL_CURRENCY'
);
Resultado:
PARAMETER VALUE ____________________ __________ NLS_TERRITORY GERMANY NLS_CURRENCY € NLS_ISO_CURRENCY GERMANY NLS_DUAL_CURRENCY €
El valor predeterminado de estos parámetros se deriva del NLS_TERRITORY
parámetro. Esta es mi configuración actual para ese parámetro:
SELECT VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER = 'NLS_TERRITORY';
Resultado:
GERMANY
Al cambiar ese parámetro, el valor de los otros parámetros se actualizará a los valores predeterminados para ese territorio (a menos que el nuevo territorio use el mismo valor que el antiguo territorio para un parámetro determinado).
Sin embargo, también puede cambiar cada parámetro directamente, lo que le permite tener un símbolo de moneda diferente al predeterminado para ese territorio.
Elementos de formato en acción
Aquí hay un ejemplo de dónde se pueden usar los parámetros NLS anteriores:
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;
Resultado:
L C U ________________ _____________ ______________ kr45 DKK45 €45