본문 바로가기

빅데이터과정/PL/SQL

#9_140625_PL_SQL_LOOP문

728x90

# LOOP문


LOOP 문을 사용해야 하는 이유 – 특정 실행문을 반복해서 수행하고자 할 때 사용
LOOP 문의 종류 3가지
basic loop
while loop : 조건이 true인 경우만 반복


for loop



문제36. 아래의 테이블을 생성하고 empno에 1~50000 만번까지 숫자를 입력하고 ename에는 scott를 입력하시오

CREATE TABLE emp440
(empno NUMBER(10),
ename VARCHAR2(20));

SET serveroutput ON

DECLARE
 v_count NUMBER(10) := 1;

BEGIN
 LOOP
  v_count := v_count+1;
  INSERT INTO emp440
  VALUES (v_count,'SCOTT');
  EXIT WHEN v_count = 50000;
 END LOOP;
END;
/


basic loop는 exit when 절을 안쓰면 무한루프를 돌게된다.


문제37. 방금 수행한 문제36번을 while loop 문으로 수행하시오

SET serveroutput ON

DECLARE
 v_count NUMBER(10) := 1;

BEGIN
 WHILE v_count<50000 loop="" o:p="">
  v_count := v_count+1;
  INSERT INTO emp440
  VALUES (v_count,'SCOTT');
 END LOOP;
END;
/


basic loop 보다 무한루프 위험에서 줄어듦



마지막문제1. 오늘까지 배운 내용으로 구구단 3단과 4단과 5단을 출력하시오

SET serveroutput ON

DECLARE
 v_count NUMBER(10) := 0;

BEGIN
 WHILE v_count<9 loop="" o:p="">
  v_count := v_count+1;
  dbms_output.put_line ('3*' || v_count || '=' || 3*v_count);
 END LOOP;
 v_count := 0;
 WHILE v_count<9 loop="" o:p="">
  v_count := v_count+1;
  dbms_output.put_line ('4*' || v_count || '=' || 4*v_count);
 END LOOP;
 v_count := 0;
 WHILE v_count<9 loop="" o:p="">
  v_count := v_count+1;
  dbms_output.put_line ('5*' || v_count || '=' || 5*v_count);
 END LOOP;
END;


/


'빅데이터과정 > PL/SQL ' 카테고리의 다른 글

#10_140626_PL_SQL_FOR 문  (0) 2014.07.14
#9_140625_PL_SQL_CASE 문  (0) 2014.07.14
#9_140625_PL_SQL_IF 문  (0) 2014.07.14
#9_140625_PL_SQL_진리연산표  (0) 2014.07.14
#9_140625_PL_SQL_변수의 데이터 유형  (0) 2014.07.14