beginer only this function for number say work for me on oracle 10g, jus run this function CREATE OR REPLACE FUNCTION NUMBERSAY (p_number IN NUMBER) RETURN VARCHAR2 AS TYPE myArray is table of varchar2(255); l_str myArray :=myArray(' ',' thousand',' million',' billions', ' trilions',' quardilions',' quintilions', ' sextilions',' nonillions',' decilions', ' undecilions',' duodecilions'); l_num varchar2(50) default trunc(p_number); l_return varchar2(4000); begin for i in 1..l_str.count loop exit when l_num is null; if substr(l_num,length(l_num)-2,3)<>0 then l_return:=to_char(to_date(substr(l_num,length(l_num)-2,3),'J'),'Jsp') ||l_str(i)||l_return; end if; l_num:=substr(l_num,1,length(l_num)-3); end loop; return l_return; end; Code (markup): and try select NUMBERSAY(95487645621) from dual Code (markup): return : Ninety-Five billionsFour Hundred Eighty-Seven millionSix Hundred Forty-Five thousandSix Hundred Twenty-One Code (markup):