plsql自定义数字格式

riv*_*er0 4 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

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

Jus*_*ave 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
Run Code Online (Sandbox Code Playgroud)

您还可以在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
Run Code Online (Sandbox Code Playgroud)