2009-04-07 88 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 
設置它