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_CURRENCYespecifica la cadena que se utilizará como símbolo de moneda local paraLelemento de formato de número.NLS_ISO_CURRENCYdetermina qué usar para elCelemento de formato.NLS_DUAL_CURRENCYespecifica qué usar para laUelemento 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