2012-06-21 2 views
0

Когда я использую FML999G999G999G999G990D00 в качестве моей маскировочной маски в Oracle Apex, она показывает значение как $800.00. Мне нужно заменить $ на другой знак валюты.Изменить валюту Войти Oracle Apex Number Формат

Как я могу это сделать?

+0

Возможно, это может помочь https://forums.oracle.com/fo rums/thread.jspa? threadID = 990848 –

ответ

1

Вам нужно изменить параметр NLS_CURRENCY сеанса, чтобы изменить валюту:

SQL> ALTER SESSION SET NLS_CURRENCY='EUR'; 

Session altered. 

SQL> SELECT to_char(800, 'FML999G999G999G999G990D00') FROM dual; 

TO_CHAR(800,'FML999G999G999G999G9 
--------------------------------- 
EUR800,00 

Или с DBMS_SESSION:

SQL> BEGIN dbms_session.set_nls('NLS_CURRENCY', 'GBP'); END; 
    2/

PL/SQL procedure successfully completed. 

SQL> SELECT to_char(800, 'FML999G999G999G999G990D00') FROM dual; 

TO_CHAR(800,'FML999G999G999G999G9 
--------------------------------- 
GBP800,00 

Вы также можете указать валюту непосредственно TO_CHAR:

SQL> SELECT to_char(800, 'FML999G990D00', 'NLS_CURRENCY=''£''') FROM dual; 

TO_CHAR(800,'FML999G9 
--------------------- 
£800,00 
+0

После перезагрузки сервера мне нужно настроить это снова? –

+0

@ Mr.Pichler: команда 'ALTER SESSION' имеет специфику сеанса, что означает, что ее действие закончится, когда вы закончите соединение с базой данных. Это, кстати, клиентские настройки, поэтому для большинства приложений есть способ сделать это изменение более постоянным (например: регистр в Windows для SQL * Plus) –