Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Descubra qual símbolo de moeda sua sessão usa no Oracle


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 o L elemento de formato de número.
  • NLS_ISO_CURRENCY determina o que usar para o C elemento de formato.
  • NLS_DUAL_CURRENCY especifica o que usar para o U 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