【问题标题】:Change Currency Sign in Oracle Apex Number Format更改 Oracle Apex 数字格式的货币符号
【发布时间】:2012-06-21 16:02:25
【问题描述】:

当我在 Oracle Apex 中使用 FML999G999G999G999G990D00 作为我的数字格式掩码时,它显示值为 $800.00。我需要用另一个货币符号替换 $

我该怎么做?

【问题讨论】:

标签: oracle oracle11g oracle-apex currency-formatting


【解决方案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

【讨论】:

  • 重启服务器后,是否需要重新设置?
  • @Mr.Pichler:ALTER SESSION 命令是特定于会话的,这意味着它的效果将在您结束与数据库的连接时结束。顺便说一句,这是一个客户端设置,因此对于大多数应用程序,有一种方法可以使这种更改更加永久(例如:在 windows 中为 SQL*Plus 注册)
  • 我使用的是 APEX 5.1,但在全局页面中按上述设置更改会话无效。当我查看调试窗口时,第一个调试语句将 nls 设置为各种值,所以我的猜测是这会覆盖我的值。无法找到它的来源,但共享组件,全球化属性不包括货币。您会认为 Oracle 会简化此操作并将其包含在其中。
猜你喜欢
  • 1970-01-01
  • 2013-07-03
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多