본문 바로가기
SQL/Oracle

숫자금액을 한글금액으로 변환 펑션

by 젤리씨 2020. 12. 21.
728x90

숫자금액을 한글금액으로 변환 펑션


CREATE OR REPLACE FUNCTION F_NUMTOKOR


(


    tmp_str IN VARCHAR2


)


RETURN VARCHAR2 AS




    U1       VARCHAR2(27) := '일이삼사오육칠팔구';


    U2       VARCHAR2(100) := ' 십백천만십백천억십백천조십백천경십백천';


    RESULT   VARCHAR2(256) := '';


    NUM      INTEGER;


    ZERO_CNT INTEGER := 0;




BEGIN




    IF tmp_str IS NULL THEN


        RESULT := NULL;


    ELSE


        FOR i IN REVERSE 1 .. LENGTH(tmp_str)


        LOOP




            NUM := TO_NUMBER(SUBSTR(tmp_str,LENGTH(tmp_str)-i+1,1));




            IF NUM > 0 THEN


                RESULT := RESULT||SUBSTR(U1,NUM,1)||SUBSTR(U2,i,1);


                ZERO_CNT := 0;


            ELSE


                ZERO_CNT := ZERO_CNT + 1;




                IF i IN (17,13,9,5) AND ZERO_CNT < 4 THEN


                 RESULT := RESULT||SUBSTR(U2,i,1);


                END IF;


            END IF;




            END LOOP;


    END IF;




    RETURN TRIM(RESULT);


END;

/





결과값은  2억6백2십만1천6백



대신 결과값을  이억육백이십만일천육백  으로 바꾸고 싶으면


U1       VARCHAR2(27) := '123456789';     


U1 을 위처럼 바꿔주면 됩니다.///

728x90

댓글