最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

OracleSQL金額小寫轉(zhuǎn)大寫函數(shù)

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 16:09:28
文檔

OracleSQL金額小寫轉(zhuǎn)大寫函數(shù)

OracleSQL金額小寫轉(zhuǎn)大寫函數(shù):原文鏈接:http://www.cnblogs.com/Ira_Young/archive/2009/11/11/1601168.html 無 Create Or Replace Function Money2Chinese(Money In Number) Return Varchar2 Is strYuan Varchar2(150); strYu
推薦度:
導(dǎo)讀OracleSQL金額小寫轉(zhuǎn)大寫函數(shù):原文鏈接:http://www.cnblogs.com/Ira_Young/archive/2009/11/11/1601168.html 無 Create Or Replace Function Money2Chinese(Money In Number) Return Varchar2 Is strYuan Varchar2(150); strYu

原文鏈接:http://www.cnblogs.com/Ira_Young/archive/2009/11/11/1601168.html 無 Create Or Replace Function Money2Chinese(Money In Number) Return Varchar2 Is strYuan Varchar2(150); strYuanFen Varchar2(152); numLenYuan Number; numLenYuanFen Num

原文鏈接:http://www.cnblogs.com/Ira_Young/archive/2009/11/11/1601168.html <無> $velocityCount-->
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;
 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;

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

OracleSQL金額小寫轉(zhuǎn)大寫函數(shù)

OracleSQL金額小寫轉(zhuǎn)大寫函數(shù):原文鏈接:http://www.cnblogs.com/Ira_Young/archive/2009/11/11/1601168.html 無 Create Or Replace Function Money2Chinese(Money In Number) Return Varchar2 Is strYuan Varchar2(150); strYu
推薦度:
標(biāo)簽: 鏈接 金額 小寫
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top