2009-04-07 7 views
4

Я пытаюсь форматировать числовое значение всегда в формате «9 999,99» (обратите внимание на пробел).plsql пользовательский числовой формат

Проблема в том, что оракул не предоставляет мне числовую маску для получения этого формата.

Ближайшее я получаю с to_char (значение, '99990,99'), но никак не помещать это пространство после третьей цифры.

некоторые примеры того, что я хотел бы получить 1345,67 -> 1 345,67 12356,00 -> 12 356,00 0,56 -> 0,56

Как я мог сделать это, возможно, используя обычный expresion ?? Есть идеи?

ответ

6
SQL> alter session set nls_numeric_characters = ', ' 
    2 ; 

Session altered. 

SQL> select to_char(999999/100, '9G999D99') 
    2 from dual; 

TO_CHAR(9 
--------- 
9 999,99 

Вы также можете указать NLS_NUMERIC_CHARACTERS настройки в заявлении TO_CHAR, а не установив ее на уровне сеанса

1 select to_char(999999/100, '9G999D99', 'nls_numeric_characters='', '' ') 
    2* from dual 
SQL>/

TO_CHAR(9 
--------- 
9 999,99 
Смежные вопросы