plsql自定义数字格式

时间:2009-04-07 21:26:12

标签: sql oracle plsql

我正在尝试格式化“9 999,99”格式的数值(注意空格)。

问题是oracle没有为我提供这种格式的数字掩码。

我得到的最接近的是to_char(值,'99990,99'),但没办法在第三位数之后放置那个空格。

我希望获得的一些例子 1345.67 - > 1 345,67 12356.00 - > 12 356,00 0.56 - > 0,56

我怎么能这样做,也许是使用正常的表达?任何想法?

1 个答案:

答案 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