오라클[sql] 반복문
반복문
문법
LOOP
IF 조건 THEN EXIT; -- 종료문
END IF;
END LOOP;
LOOP
EXIT WHEN 조건;
END LOOP;
WHILE 조건 LOOP
END LOOP;
FOR 변수 IN 최소값..최대값 LOOP
-- 변수값이 최소값부터 최대값으로 한번씩 증가
END LOOP;
예제 - 구구단
ACCEPT p_dan PROMPT '구구단 단 입력?'
DECLARE
v_dan INTEGER := &p_dan;
cnt INTEGER;
BEGIN
FOR i IN 1..9 LOOP
cnt := v_dan * i;
DBMS_output.put_line(v_dan || ' x ' || i || ' = ' || cnt);
END LOOP;
END;
/
예제 - 1~100 홀수 합산 / 짝수 합산
DECLARE
odd_sum INTEGER := 0;
even_sum INTEGER := 0;
BEGIN
FOR i IN 1..100 LOOP
IF i mod 2 = 0 THEN even_sum := even_sum + i;
-- ELSE odd_sum := odd_sum + i;
ELSIF mod(i,2) = 1 THEN odd_sum := odd_sum + i;
END IF;
END LOOP;
DBMS_output.put_line('홀수 합산 : ' || odd_sum );
DBMS_output.put_line('짝수 합산 : ' || even_sum );
END;
/
예제 - 2단 출력 > 9~1 내림차순으로 출력
▶ 내림차순 REVERSE
DECLARE
cnt INTEGER;
BEGIN
FOR i IN REVERSE 1..9 LOOP
cnt := 2 * i;
DBMS_output.put_line(2 || ' x ' || i || ' = ' || cnt);
END LOOP;
END;
/