select
TO_CHAR(TO_DATE(substr(1234567.123,1,instr(1234567.123,’.’)-1),’J’),’JSP’)||’ and paise ‘||
replace(replace(replace(replace(TO_CHAR(TO_DATE(substr(1234567.123,instr(1234567.123,’.’)+1,length(1234567.123)),’J’),’JSP’),’MILLION’,”),’HUNDRED’,”),’THOUSAND’,”),’-‘,’ ‘) as number_char
from dual.

 

Thanks to bhupinderbs

http://www.orafaq.com/node/1448