【发布时间】:2012-06-21 16:02:25
【问题描述】:
当我在 Oracle Apex 中使用 FML999G999G999G999G990D00 作为我的数字格式掩码时,它显示值为 $800.00。我需要用另一个货币符号替换 $。
我该怎么做?
【问题讨论】:
标签: oracle oracle11g oracle-apex currency-formatting
当我在 Oracle Apex 中使用 FML999G999G999G999G990D00 作为我的数字格式掩码时,它显示值为 $800.00。我需要用另一个货币符号替换 $。
我该怎么做?
【问题讨论】:
标签: oracle oracle11g oracle-apex currency-formatting
需要修改会话参数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
【讨论】:
ALTER SESSION 命令是特定于会话的,这意味着它的效果将在您结束与数据库的连接时结束。顺便说一句,这是一个客户端设置,因此对于大多数应用程序,有一种方法可以使这种更改更加永久(例如:在 windows 中为 SQL*Plus 注册)