我正在尝试格式化“9 999,99”格式的数值(注意空格)。
问题是oracle没有为我提供这种格式的数字掩码。
我得到的最接近的是to_char(值,'99990,99'),但没办法在第三位数之后放置那个空格。
我希望获得的一些例子 1345.67 - > 1 345,67 12356.00 - > 12 356,00 0.56 - > 0,56
我怎么能这样做,也许是使用正常的表达?任何想法?
答案 0 :(得分: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
您还可以在TO_CHAR语句中指定NLS_NUMERIC_CHARACTERS设置,而不是在会话级别设置
1 select to_char(999999/100, '9G999D99', 'nls_numeric_characters='', '' ')
2* from dual
SQL> /
TO_CHAR(9
---------
9 999,99