2009-02-25 79 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函數。

相關問題