숫자금액을 한글금액으로 변환 펑션
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 을 위처럼 바꿔주면 됩니다.///
'SQL > Oracle' 카테고리의 다른 글
오라클 CPU 점유율 확인 및 세션 킬 (0) | 2022.04.08 |
---|---|
ORA-00942 테이블 또는 뷰가 존재하지 않습니다 (0) | 2021.06.05 |
oracle sql 문자 바꾸기 replace함수 (0) | 2020.08.14 |
Oracle 컬럼 속성 변경 하기 (0) | 2020.07.19 |
DB link 시퀀스 까지 가져오기 (0) | 2020.07.07 |
댓글