Web develop/SQL

[SQL/ORACLE] PL/SQL 반복문 형식 (LOOP, FOR, 다중 FOR문,WHILE)

ForA 2019. 6. 16. 14:55
728x90

LOOP

LOOP
    반복실행할 문장1;
    반복실행할 문장2;
    반복실행할 문장3;
    EXIT [WHEN 조건식];
END LOOP;

-- 1~10까지 출력
declare
    i NUMBER := 0;
    begin
    LOOP
            i := i+1;
              dbms_output.put_line(i);
        EXIT WHEN i=10;
        END LOOP;
END;
/

FOR

FOR 변수 IN [REVERSE] 최소값..최대값
LOOP
    반복 실행할 문장;
END LOOP;
  • REVERSE : 최소값 최대값이 반대로 명시됨
    -- 안녕하세요 10번 출력
    declare
        begin
            FOR i IN 1..10
            LOOP
                dbms_output.put_line('안녕하세요'||i);
            END LOOP;
    END;
    /

다중 FOR문

-- 3~5단 출력
declare
    begin
      FOR i IN 3..5
      LOOP
        dbms_output.put_line('<'||i||'단>');
        FOR j IN 1..9
        LOOP
            dbms_output.put_line(i||'*'||j||'='||i*j);
        END LOOP;
      END LOOP;
END;
/


-- 구구단 입력후 gugudan 테이블에 저장
declare
    begin
      FOR dan IN 3..5
      LOOP
        FOR i IN 1..9
        LOOP
        INSERT INTO gugudan (dan,i,result) VALUES (dan,i,i*dan);
        END LOOP;
      END LOOP;
END;
/

WHILE

WHILE 조건식
LOOP
    반복실행할 문장;
END LOOP;