详解Oracle中数字与大写交换_绿色软件之家

绿色软件之家:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置: 首页数据库Oracle → 详解Oracle中数字与大写交换

详解Oracle中数字与大写交换

时间:2015-06-28 00:00:00 来源:绿色软件之家 作者:网管联盟 我要评论(1)

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

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

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

代码:

  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中使用alter table来增加,删除,修改列的语法 Oracle中使用alter table来增加,删除,修改列的语法 oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例 oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例 误删Oracle数据库实例的控制文件 误删Oracle数据库实例的控制文件 为UNIX服务器设置Oracle全文检索 为UNIX服务器设置Oracle全文检索

相关下载

人气排行 oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例 Oracle中使用alter table来增加,删除,修改列的语法 ORACLE SQL 判断字符串是否为数字的语句 ORACLE和SQL语法区别归纳(1) oracle grant 授权语句 ORACLE修改IP地址后如何能够使用 如何加速Oracle大批量数据处理 Oracle删除表的几种方法