No Oracle Database, os seguintes parâmetros NLS podem ser usados para determinar como as moedas são exibidas para a sessão atual:
NLS_CURRENCY
especifica a string a ser usada como o símbolo da moeda local para oL
elemento de formato de número.NLS_ISO_CURRENCY
determina o que usar para oC
elemento de formato.NLS_DUAL_CURRENCY
especifica o que usar para oU
elemento de formato.
O valor padrão para estes é determinado pelo
NLS_TERRITORY
parâmetro. O
L
, C
e U
elementos de formato numérico podem ser usados em funções como TO_CHAR()
para formatar um número como moeda. Como devolver o símbolo da moeda
Você pode descobrir qual símbolo de moeda sua sessão atual usa consultando o
V$NLS_PARAMETERS
visualizar. Exemplo:
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 €
O valor padrão desses parâmetros é derivado do
NLS_TERRITORY
parâmetro. Aqui está minha configuração atual para esse parâmetro:SELECT VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER = 'NLS_TERRITORY';
Resultado:
GERMANY
Ao alterar esse parâmetro, o valor dos outros parâmetros será atualizado para os valores padrão desse território (a menos que o novo território use o mesmo valor que o antigo para um determinado parâmetro).
No entanto, você também pode alterar cada parâmetro diretamente, o que permite que você tenha um símbolo de moeda diferente do padrão para esse território.
Elementos de formato em ação
Aqui está um exemplo de onde os parâmetros NLS acima podem ser usados:
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