IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)數(shù)據(jù)庫(kù)Oracle → 詳解Oracle中數(shù)字與大寫交換

詳解Oracle中數(shù)字與大寫交換

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(1)

對(duì)于數(shù)字大小寫的轉(zhuǎn)換,也是有一定中國(guó)特色的東西。但是在賬務(wù)報(bào)表中,我們還是需要有這樣的功能的。今天寫了一個(gè)將數(shù)字金額轉(zhuǎn)化為大寫的函數(shù)。

功能:將任意長(zhǎng)度的數(shù)字金額轉(zhuǎn)化為大寫。最低位為圓或角時(shí),后面加"整";為"分"時(shí)不加"整"。

說(shuō)明:小數(shù)點(diǎn)后保留兩位。超過(guò)兩位的部分被截?cái)唷?/p>

代碼:

  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)?:=?

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索 為UNIX服務(wù)器設(shè)置Oracle全文檢索

相關(guān)下載

人氣排行 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句 ORACLE和SQL語(yǔ)法區(qū)別歸納(1) oracle grant 授權(quán)語(yǔ)句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法