• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

金额大写转小写SQL

mysql 搞代码 4年前 (2022-01-09) 13次浏览 已收录 0个评论
Create Or Replace Function Money2Chinese(Money In Number) Return Varchar2 Is   strYuan       Varchar2(150);   strYuanFen    Varchar2(152);   numLenYuan    Number;   numLenYuanFen Number;   strRstYuan    Varchar2(600);   strRstFen     Varchar2(200);   strRst        Varchar2(800);   Type typeTabMapping Is Table Of Varchar2(2) Index By Binary_Integer;   tabNumMapping  typeTabMapping;   tabUnitMapping typeTabMapping;   numUnitIndex   Number;   i              Number;   j              Number;   charCurrentNum Char(1); Begin   If Money Is Null Then     Return Null;   End If;   strYuan := TO_CHAR(FLOOR(Money));   If strYuan = '0' Then     numLenYuan := 0;     strYuanFen := lpad(TO_CHAR(FLOOR(Money * 100)), 2, '0');   Else     numLenYuan := length(strYuan);     strYuanFen := TO_CHAR(FLOOR(Money * 100));   End If;   If strYuanFen = '0' Then     numLenYuanFen := 0;   Else     numLenYuanFen := length(strYuanFen);   End If;   If numLenYuan = 0 Or numLenYuanFen = 0 Then     strRst := '零圆整';     Return strRst;   End If;   tabNumMapping(0) := '零';   tabNumMapping(1) := '壹';   tabNumMapping(2) := '贰';   tabNumMapping(3) := '叁';   tabNumMapping(4) := '肆';   tabNumMapping(5) := '伍';   tabNumMapping(6) := '陆';   tabNumMapping(7) := '柒';   tabNumMapping(8) := '捌';   tabNumMapping(9) := '玖';   tabUnitMapping(-2) := '分';   tabUnitMapping(-1) := '角';   tabUnitMapping(1) := '';   tabUnitMapping(2) := '拾';   tabUnitMapping(3) := '佰';   tabUnitMapping(4) := '仟';   tabUnitMapping(5) := '万';   tabUnitMapping(6) := '拾';   tabUnitMapping(7) := '佰';   tabUnitMapping(8) := '仟';   tabUnitMapping(9) := '亿';   For i In 1 .. numLenYuan Loop     j            := numLenYuan - i + 1;     numUnitIndex := Mod(i, 8);     If numUnitIndex = 0 Then       numUnitIndex := 8;     End If;     If numUnitIndex = 1 And i > 1 Then       strRstYuan := tabUnitMapping(9) || strRstYuan;     End If;     charCurrentNum := substr(strYuan, j, 1);     If charCurrentNum <> 0 Then       strRstYuan := tabNumMapping(charCurrentNum) ||                     tabUnitMapping(numUnitIndex) || strRstYuan;     Else       If (i = 1 Or i = 5) Then         If substr(strYuan, j - 3, 4) <> '0000' Then           strRstYuan := tabUnitMapping(numUnitIndex) || strRstYuan;         End If;       Else         If substr(strYuan, j + 1, 1) <> '0' Then           strRstYuan := tabNumMapping(charCurrentNum) || strRstYuan;         End If;       End If;     End If;   End Loop;   For i In -2 .. -1 Loop     j              := numLenYuan - i;     charCurrentNum := substr(strYuanFen, j, 1);     If charCurrentNum <> '0' Then       strRstFen := tabNumMapping(charCurrentNum) || tabUnitMapping(i) ||                    strRstFen;     End If;<div style="color:transparent">本文来源gaodai.ma#com搞##代!^码@网*</div>   End Loop;   If strRstYuan Is Not Null Then     strRstYuan := strRstYuan || '圆';   End If;   If strRstFen Is Null Then     strRstYuan := strRstYuan || '整';   Elsif length(strRstFen) = 2 And substr(strRstFen, 2) = '角' Then     strRstFen := strRstFen || '整';   End If;   strRst := strRstYuan || strRstFen;   --strRst := Replace(strRst, '亿零', '亿');   --strRst := Replace(strRst, '万零', '万');   Return strRst; End Money2Chinese;

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:金额大写转小写SQL
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址