IT猫扑网:您身边最放心的安全下载站! 最新更新| 软件分类| 专题汇总| 手机版

您当前所在位置:IT猫扑网 > 数据库 > Oracle > 详解Oracle中数字与大写交换

详解Oracle中数字与大写交换

时间:2015-06-28 00:00 来源:IT猫扑网|http://www.itmop.com/ 作者:网管联盟 我要评论(0)

对于数字大小写的转换,也是有一定中国特色的东西。但是在账务报表中,我们还是需要有这样的功能的。今天写了一个将数字金额转化为大写的函数。

功能:将任意长度的数字金额转化为大写。最低位为圆或角时,后面加&整&;为&分&时不加&整&。

说明:小数点后保留两位。超过两位的部分被截断。

代码:

  1. PL/SQL 代码  
  2. Create Or Replace Function Money2Chinese(Money In Number) Return Varchar2 Is 
  3.   strYuan Varchar2(150);  
  4.   strYuanFen    Varchar2(152);  
  5.   numLenYuan    Number;  
  6.   numLenYuanFen Number;  
  7.   strRstYuan    Varchar2(600);  
  8.   strRstFen     Varchar2(200);  
  9.   strRst  Varchar2(800);  
  10.   Type typeTabMapping Is Table Of Varchar2(2) Index By Binary_Integer;  
  11.   tabNumMapping  typeTabMapping;  
  12.   tabUnitMapping typeTabMapping;  
  13.   numUnitIndex   Number;  
  14.   i  Number;  
  15.   j  Number;  
  16.   charCurrentNum Char(1);  
  17. Begin 
  18.   If Money Is Null Then 
  19.     Return Null;  
  20.   End If;  
  21.   strYuan := TO_CHAR(FLOOR(Money));  
  22.   If strYuan = '0' Then 
  23.     numLenYuan := 0;  
  24.     strYuanFen := lpad(TO_CHAR(FLOOR(Money * 100)), 2, '0');  
  25.   Else 
  26.     numLenYuan := length(strYuan);  
  27.     strYuanFen := TO_CHAR(FLOOR(Money * 100));  
  28.   End If;  
  29.   If strYuanFen = '0' Then 
  30.     numLenYuanFen := 0;  
  31.   Else 
  32.     numLenYuanFen := length(strYuanFen);  
  33.   End If;  
  34.   If numLenYuan = 0 Or numLenYuanFen = 0 Then 
  35.     strRst := '零圆整';  
  36.     Return strRst;  
  37.   End If;  
  38.   tabNumMapping(0) := '零';  
  39.   tabNumMapping(1) := '壹';  
  40.   tabNumMapping(2) := '贰';  
  41.   tabNumMapping(3) := '叁';  
  42.   tabNumMapping(4) := '肆';  
  43.   tabNumMapping(5) := '伍';  
  44.   tabNumMapping(6) := '陆';  
  45.   tabNumMapping(7) := '柒';  
  46.   tabNumMapping(8) := '捌';  
  47.   tabNumMapping(9) :=  相关阅读 误删Oracle数据库实例的控制文件 为UNIX服务器设置Oracle全文检索 Oracle数据库如何查找删除重复的SQL语句 Oracle导入导出数据库的语法 oracle数据库安装预环境一键处理脚本 oracle常用DBA命令

    文章评论
    发表评论

热门文章 误删Oracle数据库实例的控制文件 误删Oracle数据库实例的控制文件 利用Oracle分区表来减少磁盘I/O冲突 利用Oracle分区表来减少磁盘I/O冲突 Oracle数据库优化之数据库磁盘I/O Oracle数据库优化之数据库磁盘I/O 讲解Oracle复制技术的分布式系统同步应用 讲解Oracle复制技术的分布式系统同步应用 刷新Oracle缓存 刷新Oracle缓存 oracle 8080与TOMCAT默认端口冲突 oracle 8080与TOMCAT默认端口冲突

相关下载

人气排行 oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例 Oracle中使用alter table来增加,删除,修改列的语法 ORACLE SQL 判断字符串是否为数字的语句 ORACLE和SQL语法区别归纳(1) oracle grant 授权语句 ORACLE修改IP地址后如何能够使用 如何加速Oracle大批量数据处理 Oracle删除表的几种方法 Oracle 10g创建表空间和用户并指定权限 Oracle连接数太多报错-ORA-12516错误 Oracle字符串截取 连接Oracle数据库的Hibernate配置文件