银行金额小写转大写functionORACLE

银行金额小写转大写functionORACLE,第1张

概述银行金额小写转大写function ORACLE

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

create or replaceFunction Money2Chinese(moneyValues In Number) Return Varchar2 Is    --moneyValue := Round(to_number(moneyValue))*100    Str1   NCHAR(10) := '零壹贰叁肆伍陆柒捌玖';    Str2   NCHAR(15) := '萬仟佰拾亿仟佰拾萬仟佰拾元角分';    Str3   Number(10);    moneyValue Varchar2(100) := trim(to_char(moneyValues)*100);  --保留小数并去掉小数点后的值    chineseValue Varchar2(600);    lens    Number   := trim(length(moneyValue));    nZero  Number   := 0;    cha1   NCHAR(10);    cha2   NCHAR(10);Begin    --判断为空时    If lens Is Null Then         Return Null;    End If;    --判断位数超长时  超过15位不进行处理        If lens >15 Then        Return '超出银行支票取值范围';    End If;    If moneyValue = 0 Then        Return '零元整';    End If;    --以上条件测试之后可以运行            --下面条件选项待测    Str2 := substr(Str2,(length(Str2)-lens)+1,lens);    For i In 1..lens Loop    Str3 := substr(trim(moneyValue),i,1);    --循环遍历数值      If i <> lens-2 and i <> lens-6 and i <> lens-10 and i <>lens-14  --不是万亿,亿,万,元位等关键位        Then          IF  Str3=0 Then            cha1 := '';            cha2 := '';            nZero := nZero +1;          --第一个判断          else          IF  Str3 <> 0 and nZero <> 0 Then              cha1 := '零'||substr(Str1,Str3+1,1);              cha2 := substr(Str2,1 );              nZero := 0;              --第二个判断           Else              cha1 := substr(Str1,(Str3+1),1);          end if;         End If;          --是万亿,亿,万,元位等关键位        Else          IF Str3 <> 0 and nZero <> 0 Then              cha1 := '零'||substr(Str1,1);              nZero := 0 ;              Else                If Str3 <> 0 and nZero = 0  Then                  cha1 := substr(Str1,1);                  cha2 := substr(Str2,1);                  nZero := 0 ;                Else                      If Str3 = 0 and nZero >= 3 Then                        cha1 := '';                        cha2 := '';                        nZero := nZero + 1;                        Else                          cha1 := '';                          cha2 := substr(Str2,1);                          nZero := nZero + 1;                      End If;                End If;                If i=(lens-10) or i = (lens - 2) Then                  cha2  := substr(Str2,1);                End If;          End If;           End IF;        chineseValue := chineseValue||trim(cha1)||trim(cha2);    End Loop;    --结束循环    If  Str3 = 0 Then       chineseValue := chineseValue||'整';    End If;    Return chineseValue;End Money2Chinese;

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的银行金额小写转大写function ORACLE全部内容,希望文章能够帮你解决银行金额小写转大写function ORACLE所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1165141.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存