2009-02-25 51 views
4

使用Oracle to_char(number)函数,是否可以将ascii字符附加到返回的字符串中?Oracle:用于添加其他ascii字符的to_char(数字)模式?

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

”select to_char(89.2244,'999G999G999G999G990D00')from dual“ - > 返回”89.22“。我需要一个返回“89.22%”的格式模式。

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

+0

您期待着一些巨大的百分比 - 十三个数量级? – 2009-02-25 14:09:33

回答

5

所以你不能用CONCAT包装to_char?

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

不,可悲的不是。在Apex报告中,您只指定了要使用的数字格式,并且to_char格式在编译后的pl/sql中是“幕后”完成的,所以我唯一的选择是使用数字格式(或者创建一个css破解版) – fdl 2009-02-25 14:11:50

+0

找不到只用数字格式字符串做到这一点的方法。 CSS可能是去这里的路。 – Barry 2009-02-25 14:15:46

2

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

如果你能够改变NLS_CURRENCY为你的会话,你可以做到以下几点:

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

--- 
1,20% 
2

快速和肮脏的方式:

选择TO_CHAR(89.2244, '999G999G999G999G990D00L', 'NLS_CURRENCY =' '%''')来自双重;

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

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

相关问题