먼저 마농님이 알려주신 PL/SQL쿼리 너무잘되서 도움이 많이되었습니다. 감사합니다~
지겨우시겠지만..
다른방식으로 하다가 막혀서 여쭤보러왔습니다..
엉망일수도있지만 이쁘게봐주세요..
저번처럼 숫자를 한글로 바꾸는 쿼리입니다
DECLARE
CURSOR CUR IS
WITH T AS
(
SELECT 123123123 AMT FROM DUAL
UNION ALL SELECT 1234567890 AMT FROM DUAL
)
SELECT *
FROM T;
LEN NUMBER;
RTM VARCHAR2(100) := '' ; -- 결과값
APP VARCHAR2(50) := '123123123' ;
A2 NUMBER;
CH VARCHAR2(50) := '일이삼사오육칠팔구'; 지금은 하드코딩으로해놨는데 위에있는 커서를 어떻게 가져올까요...?
그리고 CH적용방법을 모르겠어요ㅠㅠ
I NUMBER;
MODD NUMBER;
LEAN BOOLEAN;
BEGIN
A2 := LENGTH(APP);
FOR I IN REVERSE 1..A2 LOOP
IF TO_NUMBER(APP) <> 0 THEN
RTM := RTM || SUBSTR(CH, TO_NUMBER(APP), 1);
MODD := MOD (I, 4);
IF MODD = 0 THEN RTM := RTM || '천'; END IF;
IF MODD = 3 THEN RTM := RTM || '백'; END IF;
IF MODD = 2 THEN RTM := RTM || '십'; END IF;
LEAN := TRUE;
END IF;
IF LEAN THEN
IF I = 17 THEN RTM := RTM || '경';
LEAN := FALSE;
END IF;
IF I = 13 THEN RTM := RTM || '조';
LEAN := FALSE;
END IF;
IF I = 9 THEN RTM := RTM || '억';
LEAN := FALSE;
END IF;
IF I = 5 THEN RTM := RTM || '만';
LEAN := FALSE;
END IF;
END IF;
DBMS_OUTPUT.PUT_LINE(TO_CHAR(I) || '-' ||RTM || '원');
END LOOP;
END;
전 언제쯤 정상적인 결과가 나오는 쿼리를 짤수있을까요ㅠㅠ
또 잘못된 부분이있다면 지적을해주시면 감사하겠습니다(_ _)