Oracle
 sql >> база данни >  >> RDS >> Oracle

Разберете кой символ на валута използва вашата сесия в Oracle

В Oracle Database следните NLS параметри могат да се използват, за да се определи как се показват валутите за текущата сесия:

  • NLS_CURRENCY определя низа, който да се използва като символ на местна валута за L елемент с числов формат.
  • NLS_ISO_CURRENCY определя какво да се използва за C форматен елемент.
  • NLS_DUAL_CURRENCY указва какво да се използва за U форматен елемент.

Стойността по подразбиране за тях се определя от NLS_TERRITORY параметър.

L , C и U Елементите на числовия формат могат да се използват във функции като TO_CHAR() за да форматирате число като валута.

Как да върна символа за валута

Можете да разберете коя валута използва текущата ви сесия, като направите заявка за V$NLS_PARAMETERS преглед.

Пример:

SELECT 
    PARAMETER,
    VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER IN (
    'NLS_TERRITORY',
    'NLS_CURRENCY',
    'NLS_ISO_CURRENCY',
    'NLS_DUAL_CURRENCY'    
    );

Резултат:

           PARAMETER      VALUE 
____________________ __________ 
NLS_TERRITORY        GERMANY    
NLS_CURRENCY         €          
NLS_ISO_CURRENCY     GERMANY    
NLS_DUAL_CURRENCY    €         

Стойността по подразбиране на тези параметри се извлича от NLS_TERRITORY параметър. Ето моята текуща настройка за този параметър:

SELECT VALUE
FROM V$NLS_PARAMETERS
WHERE PARAMETER = 'NLS_TERRITORY';

Резултат:

GERMANY

Чрез промяна на този параметър стойността на другите параметри ще бъде актуализирана до стойностите по подразбиране за тази територия (освен ако новата територия не използва същата стойност като старата територия за даден параметър).

Можете обаче да промените всеки параметър директно, което ви позволява да имате различен символ за валута от този по подразбиране за тази територия.

Форматните елементи в действие

Ето пример за това къде могат да се използват горните NLS параметри:

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;

Резултат:

               L             C              U 
________________ _____________ ______________ 
         kr45         DKK45            €45   

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trunc поле за дата в mysql като Oracle

  2. Пътуване през GIMR

  3. Конкатениране на колона от група в R

  4. Само архивиране на SQL схема?

  5. Oracle JDBC:невалидно потребителско име/парола (ora-01017)