下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
CREATE OR REPLACE FUNCTION PARSE_FEE_CHInesE(N_FEE IN NUMBER) RETURN VARCHAR2 AS V_CHInesE_NUMBER VARCHAR2(30) := '零壹贰叁肆伍陆柒捌玖'; V_CHInesE_POINT VARCHAR2(30) := '分角元拾佰仟万亿'; V_RESulT VARCHAR2(100) := ''; V_TEMP VARCHAR2(100); V_FLAG VARCHAR2(10); V_MAIN VARCHAR2(40); V_SUB VARCHAR2(20); N_TEMPFEE NUMBER(30,2); C_CH1 CHAR(1); C_CH2 VARCHAR2(10); N_LENGTH NUMBER(10) := 0; I NUMBER(10) := 0; J NUMBER(10) := 0; T NUMBER(10) := 0;BEGIN IF N_FEE < 0 THEN V_FLAG := '负'; N_TEMPFEE := -1 * N_FEE; ELSE N_TEMPFEE := N_FEE; V_FLAG := ''; END IF; SELECT TRIM(TO_CHAR(ROUND(N_TEMPFEE,2),'9999999999999999999.99')) INTO V_TEMP FROM DUAL; IF N_FEE = 0 THEN V_RESulT := '零元整'; ELSE --先处理整数,再处理小数 V_MAIN := SUBSTR(V_TEMP,1,INSTR(V_TEMP,'.') - 1); V_SUB := SUBSTR(V_TEMP,'.') + 1); N_LENGTH := LENGTH(V_MAIN); I := N_LENGTH; T := 0; IF V_MAIN IS NulL OR '0' = V_MAIN THEN V_RESulT := '零' || V_RESulT; END IF; WHILE I > 0 LOOP I := I - 1; T := T + 1; C_CH1 := SUBSTR(V_MAIN,I + 1); V_MAIN := SUBSTR(V_MAIN,I); J := TO_NUMBER(C_CH1); IF T = 5 OR t= 13 THEN V_RESulT := '万' || V_RESulT; ELSIF T = 9 THEN IF '万' = SUBSTR(V_RESulT,1) THEN V_RESulT := '亿' || SUBSTR(V_RESulT,2); ELSE V_RESulT := '亿' || V_RESulT; END IF; END IF; IF '0' = C_CH1 THEN IF I <> N_LENGTH AND '零' <> C_CH2 THEN IF T <> 5 AND T <> 9 AND T <> 13 THEN V_RESulT := '零' || V_RESulT; ELSIF T = 5 OR T = 9 OR t=13 THEN V_RESulT := SUBSTR(V_RESulT,1) || '零' || SUBSTR(V_RESulT,2); END IF; C_CH2 := SUBSTR(V_CHInesE_NUMBER,J,1); END IF; ELSE J := MOD(T,4); IF T <> 5 AND T <> 9 AND T <> 13 THEN IF J <> 1 THEN IF J = 0 THEN J := J + 4; END IF; J := J + 2; V_RESulT := SUBSTR(V_CHInesE_POINT,1) || V_RESulT; END IF; END IF; J := TO_NUMBER(C_CH1) + 1; C_CH2 := SUBSTR(V_CHInesE_NUMBER,1); V_RESulT := C_CH2 || V_RESulT; END IF; END LOOP; V_RESulT := V_RESulT || '元'; IF V_SUB IS NulL OR LENGTH(TRIM(V_SUB)) <= 0 OR TO_NUMBER(V_SUB) = 0 THEN V_RESulT := V_RESulT || '整'; ELSE C_CH1 := SUBSTR(V_SUB,1); J := TO_NUMBER(C_CH1) + 1; C_CH2 := SUBSTR(V_CHInesE_NUMBER,1); IF '0' = C_CH1 THEN V_RESulT := V_RESulT || C_CH2 ; ELSE V_RESulT := V_RESulT || C_CH2 || '角'; END IF; C_CH1 := SUBSTR(V_SUB,2,1); IF '0' <> C_CH1 THEN J := TO_NUMBER(C_CH1) + 1; C_CH2 := SUBSTR(V_CHInesE_NUMBER,1); V_RESulT := V_RESulT || C_CH2 || '分'; END IF; END IF; END IF; V_RESulT := V_FLAG || V_RESulT; RETURN V_RESulT;END;
以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的Oracle 人民币小写转大写全部内容,希望文章能够帮你解决Oracle 人民币小写转大写所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)