сумма в формате $ xxx, xx в оракуле Apex - PullRequest
0 голосов
/ 06 ноября 2018

Я работаю в Oracle Apex CMS. Мне нужно отобразить стоимость в формате $ xxx, xx. В интерфейсе FML999G999G999G999G990D00 есть опция формата маски, но даже после применения маски я не вижу стоимости в формате.

Поле

имеет pl / sql express в качестве источника, (nvl(:P18_COST_JOB_PROFIT,0)/100)*nvl(:P18_SUBTOTAL_LABEL_TOTAL,0)

1 Ответ

0 голосов
/ 06 ноября 2018
  1. Если в поле не отображается символ валюты или десятичный разделитель, который вы ожидаете:

Символы, используемые для L (валюта) и D (десятичный разделитель), определяются настройками сеанса NLS_NUMERIC_CHARACTERS и NLS_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='$']')
...