제가 MSSQL로 만든 함수 인데 오라클로 변경하시면 가능합니다.
ALTER FUNCTION UF_NUMTOKOR (
@AMOUNT NUMERIC(12,0)
) RETURNS VARCHAR(50) AS
/*-----------------------------------------------------------------------------
함수 명 : UF_NUMTOKOR
호출PROG : 공용
작업내용 : 숫자를 한글값으로 RETURN
작성일자 : 2005/07/27
작 성 자 : 동서정보 정재홍
수정일자 :
수 정 자 :
설 명
1. 예) 10202 --> ₩일만이백이원정
-----------------------------------------------------------------------------*/
BEGIN
DECLARE @LI INT,
@LL_PRICE VARCHAR(40),
@LL_TMP VARCHAR(02),
@LL_TMP_DANWEE VARCHAR(40),
@LFLAG VARCHAR(01),
@LS_AMOUNT VARCHAR(12)
--
SET @LS_AMOUNT = RTRIM(CAST(@AMOUNT AS VARCHAR(15)))
SET @LFLAG = 'N'
SET @LI = 1
SET @LL_TMP_DANWEE = ''
SET @LL_PRICE = ''
SET @LL_TMP = ''
--
WHILE @LI <= LEN(@LS_AMOUNT)
BEGIN
SET @LL_TMP = CASE LEFT(RIGHT(@LS_AMOUNT, @LI), 1) WHEN '1' THEN '일'
WHEN '2' THEN '이'
WHEN '3' THEN '삼'
WHEN '4' THEN '사'
WHEN '5' THEN '오'
WHEN '6' THEN '육'
WHEN '7' THEN '칠'
WHEN '8' THEN '팔'
WHEN '9' THEN '구'
ELSE '0'
END
--
IF @LL_TMP = '0'
BEGIN
SET @LI = @LI + 1
CONTINUE
END
--
SET @LL_TMP_DANWEE = @LL_TMP
--
IF @LI = 1
BEGIN
SET @LL_PRICE = @LL_TMP_DANWEE
SET @LI = @LI + 1
CONTINUE
END
SET @LL_TMP_DANWEE = CASE ((@LI - 1) % 4) WHEN 1 THEN @LL_TMP_DANWEE + '십'
WHEN 2 THEN @LL_TMP_DANWEE + '백'
WHEN 3 THEN @LL_TMP_DANWEE + '천'
ELSE @LL_TMP_DANWEE + ''
END
IF @LI > 4 AND @LI < 9 AND @LFLAG <> 'M'
BEGIN
SET @LL_TMP_DANWEE = @LL_TMP_DANWEE + '만'
SET @LFLAG = 'M'
END
IF @LI > 8 AND @LI < 13 AND @LFLAG <> 'U'
BEGIN
SET @LL_TMP_DANWEE = @LL_TMP_DANWEE + '억'
SET @LFLAG = 'U'
END
IF @LI > 12 AND @LFLAG <> 'J'
BEGIN
SET @LL_TMP_DANWEE = @LL_TMP_DANWEE + '조'
SET @LFLAG = 'J'
END
--
SET @LL_PRICE = ISNULL(@LL_TMP_DANWEE,'') + ISNULL(@LL_PRICE,'')
--
SET @LI = @LI + 1
--
END
RETURN '₩' + @LL_PRICE + '원정'
--
END
--
GO
--