2009-04-07 95 views
4

我试图格式化数字值始终格式为“9 999,99”(注意空间)。plsql自定义数字格式

问题是,oracle并没有提供给我一个数字掩码来获取这种格式。

我得到的最接近的是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 
设置它