Oracle Beginer - Simply FUnction

Discussion in 'Databases' started by wardz, Jul 4, 2008.

  1. #1
    beginer only:p
    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):

     
    wardz, Jul 4, 2008 IP