okjsp에서 펀 문제 0 2 4,466

by 기민용 [2008.01.25 12:43:37]


CREATE OR REPLACE PROCEDURE p_ant_series(v_first NUMBER)
IS
    -- 변수선언
    sStr    VARCHAR2(100);    -- 이전행 값
    sTmp    VARCHAR2(1);      -- 임시변수
    sRtn    VARCHAR2(100);    -- 출력번수
    nLen    NUMBER(3) := 0;   -- 이전행 길이
    nCnt    NUMBER(3) := 0;   -- 연속숫자 카운트
BEGIN
    -- 입력값 변수할당 및 출력 처리
    sStr := v_first;
    nLen := LENGTH(sStr);
    sTmp := SUBSTR(sStr,1,1);
    dbms_output.put_line(sStr);
   
    -- 10번 반복
    FOR k IN 1 .. 10 LOOP
        -- 숫자세기 작업 시작
        FOR i IN 1 .. nLen LOOP
            -- 연속된 숫자일경우 카운트 증가
            IF sTmp = SUBSTR(sStr,i,1) THEN
                nCnt := nCnt + 1;
            -- 물연속 숫자일경우 출력변수 값 셋팅
            ELSE
                sRtn := sRtn || sTmp || nCnt;
                nCnt := 1;
                sTmp := SUBSTR(sStr,i,1);
            END IF;
        END LOOP;
        -- 마지막 출력변수 셋팅
        sRtn := sRtn || sTmp || nCnt;
        -- 출력
        dbms_output.put_line(sRtn);
        -- 다음행 계산을 위해 출력변수를 이전행값 변수에 저장
        sStr := sRtn;
        sTmp := SUBSTR(sStr,1,1);
        sRtn := '';
        nLen := LENGTH(sStr);
        nCnt := 0;
    END LOOP;
END;
by 채용근 [2008.01.25 14:36:23]
헐~ 벌써 프로시져로 ㅉㅏ버리신건가요 ㅎㅎ 역시 Speed

by 김종만 [2008.01.25 16:09:31]
당신은 진정한 프로그래머..!
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입