ORACLE 小写金额转大写金额
Create Or Replace Function Money2Chinese(Money In Number) Return Varchar2 Is
strYuan Varchar2();
strYuanFen Varchar2();
numLenYuan Number;
numLenYuanFen Number;
strRstYuan Varchar2();
strRstFen Varchar2();
strRst Varchar2();
Type typeTabMapping Is Table Of Varchar2() Index By Binary_Integer;
tabNumMapping typeTabMapping;
tabUnitMapping typeTabMapping;
numUnitIndex Number;
i Number;
j Number;
charCurrentNum Char();
Begin
If Money Is Null Then
Return Null;
End If;
strYuan := TO_CHAR(FLOOR(Money));
If strYuan = '' Then
numLenYuan := ;
strYuanFen := lpad(TO_CHAR(FLOOR(Money * )), , '');
Else
numLenYuan := length(strYuan);
strYuanFen := TO_CHAR(FLOOR(Money * ));
End If;
If strYuanFen = '' Then
numLenYuanFen := ;
Else
numLenYuanFen := length(strYuanFen);
End If;
If numLenYuan = Or numLenYuanFen = Then
strRst := '零圆整';
Return strRst;
End If;
tabNumMapping() := '零';
tabNumMapping() := '壹';
tabNumMapping() := '贰';
tabNumMapping() := '叁';
tabNumMapping() := '肆';
tabNumMapping() := '伍';
tabNumMapping() := '陆';
tabNumMapping() := '柒';
tabNumMapping() := '捌';
tabNumMapping() := '玖';
tabUnitMapping(-) := '分';
tabUnitMapping(-) := '角';
tabUnitMapping() := '';
tabUnitMapping() := '拾';
tabUnitMapping() := '佰';
tabUnitMapping() := '仟';
tabUnitMapping() := '万';
tabUnitMapping() := '拾';
tabUnitMapping() := '佰';
tabUnitMapping() := '仟';
tabUnitMapping() := '亿';
For i In .. numLenYuan Loop
j := numLenYuan - i + ;
numUnitIndex := Mod(i, );
If numUnitIndex = Then
numUnitIndex := ;
End If;
If numUnitIndex = And i > Then
strRstYuan := tabUnitMapping() || strRstYuan;
End If;
charCurrentNum := substr(strYuan, j, );
If charCurrentNum <> Then
strRstYuan := tabNumMapping(charCurrentNum) ||
tabUnitMapping(numUnitIndex) || strRstYuan;
Else
If (i = Or i = ) Then
If substr(strYuan, j - , ) <> '' Then
strRstYuan := tabUnitMapping(numUnitIndex) || strRstYuan;
End If;
Else
If substr(strYuan, j + , ) <> '' Then
strRstYuan := tabNumMapping(charCurrentNum) || strRstYuan;
End If;
End If;
End If;
End Loop;
For i In - .. - Loop
j := numLenYuan - i;
charCurrentNum := substr(strYuanFen, j, );
If charCurrentNum <> '' Then
strRstFen := tabNumMapping(charCurrentNum) || tabUnitMapping(i) ||
strRstFen;
End If;
End Loop;
If strRstYuan Is Not Null Then
strRstYuan := strRstYuan || '圆';
End If;
If strRstFen Is Null Then
strRstYuan := strRstYuan || '整';
Elsif length(strRstFen) = And substr(strRstFen, ) = '角' Then
strRstFen := strRstFen || '整';
End If;
strRst := strRstYuan || strRstFen;
--strRst := Replace(strRst, '亿零', '亿');
--strRst := Replace(strRst, '万零', '万');
Return strRst;
End Money2Chinese;
测试SQL如下:
Select Money2Chinese(0932402934024.213) From dual;
结果:
玖仟叁佰贰拾肆亿零贰佰玖拾叁万肆仟零贰拾肆圆贰角壹分
测试通过
转自:http://www.cnblogs.com/Ira_Young/archive/2009/11/11/1601168.html
ORACLE 小写金额转大写金额的更多相关文章
- odoo中Python实现小写金额转换为大写金额
自动将小写的金额数值转换为大写,方便记录 class project_parm(models.Model): def IIf(self, b, s1, s2): if b: return s1 els ...
- Excel小写金额转大写金额公式
=IF(ROUND(A6,2)<0,"无效数值",IF(ROUND(A6,2)=0,"零",IF(ROUND(A6,2)<1,"" ...
- C#实现阿拉伯数字(小写金额)到大写中文(大写金额)的转换
/// <summary> /// 本类实现阿拉伯数字到大写中文的转换 /// 该类没有对非法数字进行判别,请事先自己判断数字是否合法 /// </summary& ...
- SQL函数:小写金额转换成大写
/********************************************************作者:版本:1.0创建时间:20020227修改时间:功能:小写金额转换成大写参数:n ...
- JavaScript将小写金额转换成大写
//num为小写金额,单位元 changeMoney(num) { if(isNaN(num))return ""; var strPrefix=""; if( ...
- C#:小写金额转换为大写
#region 小写金额转换为大写 public static string CurrToChnNum(double Currnum) { string sResult = ""; ...
- C# 金额转为大写金额
/// <summary> /// 金额转为大写金额 /// </summary> public class MoneyConvertChinese { /// <sum ...
- PHP数字金额转换大写金额
早些年做CRM用到的一个金额转换函数,今天从旧项目中拿出来记录一下.金额转换的函数方法有很多,都很不错.不过这个是小崔刚工作的时候写的一个转换函数,多少还是有点纪念意义.如有问题请朋友们指出,小崔及时 ...
- SQL标量值函数:小写金额转大写
我们日常开发业务系统中,作为统计报表中,特别是财务报表,显示中文金额经常遇到. 转换大小写的方法有很多,以下是从数据库函数方面解决这一问题. 效果如图: 调用:SELECT dbo.[Fn_Conve ...
随机推荐
- 微信小程序正式上线 可置于聊天窗口顶部
历经一年的等待后,小程序在2017年1月9日凌晨终于揭开神秘面纱,正式上线. 微信小程序推广海报 随着小程序正式上线,用户现在可以通过二维码.搜索等方式体验到开发者们开发的小程序了. 用户只要将微信更 ...
- cocos2d-x 让精灵按照自己设定的运动轨迹行动
转自:http://blog.csdn.net/ufolr/article/details/7447773 在cocos2d中,系统提供了CCMove.CCJump.CCBezier(贝塞尔曲线)等让 ...
- JSON API in Javascript
1. Serialize JavaScript object to JSON var messageObject = { title: 'Hello World!', body: 'It\'s gr ...
- Visio Premium 2010密钥+破解激活方法
Visio Premium 2010密钥+破解激活方法: 在安装时能够使用下面密钥: GR24B-GC2XY-KRXRG-2TRJJ-4X7DC VWQ6G-37WBG-J7DJP-CY66Y-V27 ...
- delphi 动态建立WebBrower
//Delphi动态建立WebBrowerunit Main;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphi ...
- jQuery Mobile的学习 jQuery Mobile工具栏、标题栏、页脚栏的定位学习
程序猿都非常赖.你懂的! 近期在做html5页面的开发,主要做智能终端设备的开发.对于内容比較少的页面,领导提出了要将页眉和页脚定位到网页的最上方和最下方.对于这种要求,事实上一点也只是分.但对于新手 ...
- iOS开发——UI篇OC篇&TextField作为搜索框的使用
TextField作为搜索框的使用 在iOS开发中我们经常会使用到搜索框,但是有的时候系统自带的搜索框不足以满足我吗想要的功能,这个时候我们就可以使用自定义的搜索框实现想要的功能. 今天就简单的介绍一 ...
- T4 文本模板编写准则
如果要在 Visual Studio 中生成程序代码或其他应用程序资源,遵守以下一般准则可能非常有帮助. 它们并不是一成不变的规则. 设计时 T4 模板准则 设计时 T4 模板是在设计时在 Visua ...
- qt里标识操作系统的宏
qt文件里的 windows的宏是Q_WS_WIN32/* The window system, must be one of: (Q_WS_x) MACX - Mac OS X ...
- 修改范围PHP_INI_SYSTEM与PHP_INI_ALL的区别
PHP_INI_USER 可在用户脚本(例如 ini_set() )或 Windows 注册表(自 PHP 5.3 起)以及 .user.ini 中设定 PHP_INI_PERDIR 可在 php.i ...