Oracle:to_char(number)的模式添加额外的ascii字符?

时间:2009-02-25 14:02:05

标签: oracle formatting numbers ascii oracle-apex

使用Oracle to_char(number)函数,是否可以在返回的字符串中附加ascii字符?

具体来说,我需要在返回的字符串中添加一个百分比字符。

“从双” - >>中选择to_char(89.2244,'999G999G999G999G990D00') 返回“89.22”。我需要一个返回“89.22%”的格式模式。

我通过Application Express中的报告使用它,所以不能简单地将“%”连接到查询,我需要将其放在数字格式中。

4 个答案:

答案 0 :(得分:5)

所以你不能用CONCAT包装to_char吗?

select concat(to_char(89.2244, '999G999G999G999G990D00'),'%') from dual

答案 1 :(得分:2)

你不能用数字格式做到这一点。

如果您能够为会话更改NLS_CURRENCY,则可以执行以下操作:

SELECT  TO_CHAR(1.2, '999G999G999G999G990D00L' /*, 'NLS_CURRENCY=%' */)
FROM    dual

--- 
1,20%

答案 2 :(得分:2)

快速而肮脏的方式:

从双重选择to_char(89.2244,'999G999G999G999G990D00L','NLS_CURRENCY =''%''');

答案 3 :(得分:0)

SYS @ orant11g >select to_char(89.2244, '999G999G999G999G990D00')||'%' from dual;
TO_CHAR(89.2244,'999G999
------------------------
              89.22%

只需使用|| bar而不是concat函数。