在Oracle Apex中将格式金额设置为$ xxx,xx

时间:2018-11-06 06:15:32

标签: oracle oracle-apex

我正在使用Oracle Apex CMS。我需要以$ xxx,xx格式显示费用。 接口FML999G999G999G999G990D00中有格式遮罩选项,但是即使应用了遮罩,我也看不到格式的费用。

字段以pl / sql express作为源,(nvl(:P18_COST_JOB_PROFIT,0)/100)*nvl(:P18_SUBTOTAL_LABEL_TOTAL,0)

1 个答案:

答案 0 :(得分:3)

  1. 如果该字段未显示货币符号或小数点分隔符,则您期望:

用于L(货币)和D(十进制分隔符)的字符由会话NLS_NUMERIC_CHARACTERSNLS_CURRENCY设置确定,默认情况下由应用程序主要语言(请参阅应用程序属性-> 全球化)。

要覆盖应用程序主要语言提供的默认设置,可以在会话初始化PL / SQL设置中设置会话参数(应用程序属性-> 安全性-> 初始化PL / SQL代码):

dbms_session.set_nls('nls_numeric_characters', q'[', ']');
dbms_session.set_nls('nls_currency', q'['$']');

在上面的示例中,十进制分隔符是逗号(,),组分隔符是空格(),货币符号是$

  1. 如果该字段根本没有使用格式掩码:

您可能需要直接在 PL / SQL表达式中指定格式掩码,例如

to_char(
  nvl(:P18_COST_JOB_PROFIT,0)/100*nvl(:P18_SUBTOTAL_LABEL_TOTAL,0)
  ,'FML999G999G999G999G990D00'
  ,q'[nls_numeric_characters=', ' nls_currency='$']')