码迷,mamicode.com
首页 > 数据库 > 详细

Number To Indian Rupee Words in Oracle Forms / Reports

时间:2016-12-26 00:14:35      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:border   convert   letter   frd   to_date   log   ini   技术分享   acl   

Convert numbers to Indian Rupees format in Oracle Forms / Reports.

Create the below mention function in Oracle Forms / Reports and call it with passing a number parameter.

FUNCTION INR_words( p_number In number, vFrDec varchar2 Default ‘Paisa Only‘)
RETURN varchar2 As
TYPE myArray Is Table Of varchar2(255);     
TYPE myArray2 Is Table Of varchar2(255);
l_str    myArray := myArray( ‘‘,
                   ‘ Thousand ‘, ‘ Lac ‘,
                   ‘ Crore ‘, ‘ Arab ‘,
                   ‘ Kharab ‘, ‘ quintillion ‘,
                   ‘ Sextillion ‘, ‘ Septillion ‘,
                   ‘ Octillion ‘, ‘ Nonillion ‘,
                   ‘ Decillion ‘, ‘ Undecillion ‘,
                   ‘ Duodecillion ‘ );
l_str2 myArray2 := myArray2(‘Rs Paisa‘, ‘$ Pany‘);
    l_num   varchar2(50) Default Trunc( p_number );
    l_dec   varchar2(50) Default Substr(To_Char(p_number - Trunc(p_number), ‘.99‘),2);
    l_return varchar2(4000);
    j number := 3;
BEGIN
    For i In 1 .. l_str.Count
    LOOP
        EXIT When l_num Is Null;
        IF ( Substr(l_num, Length(l_num)-(j-1), j) <> 0 ) Then
           l_return := To_Char(To_Date(
                            Substr(l_num, Length(l_num)-(j-1), j),‘J‘ ), ‘Jsp‘ ) || l_str(i) || l_return;
        END IF;
        l_num := Substr( l_num, 1, Length(l_num)-j );
        j:=2;
    END LOOP;
    IF l_dec > 0 Then
        l_return := rtrim(l_return) || ‘ and ‘ || rtrim(inr_words(Substr(l_dec,2), Null)) || ‘ ‘ || rtrim(Initcap(vFrdec));
    END IF;
    RETURN Replace(l_return, ‘-‘, ‘ ‘);
END;


技术分享

Number To Indian Rupee Words in Oracle Forms / Reports

标签:border   convert   letter   frd   to_date   log   ini   技术分享   acl   

原文地址:http://www.cnblogs.com/quanweiru/p/6220637.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!