반복문

양혜정·2024년 3월 25일

Oracle

목록 보기
46/49

반복문의 종류

  • 기본 LOOP 문
  • FOR LOOP 문
  • WHILE LOOP 문

기본 LOOP 문

[문법]

LOOP
	반복해야할 실행문장;
EXIT WHEN 탈출조건;		-- 탈출조건이 참 이라면 LOOP 를 탈출한다.
END LOOP;

tbl_looptest_1 테이블에 행을 20000개 insert

create or replace procedure pcd_tbl_looptest_1_insert
(p_name IN tbl_looptest_1.name%type
,p_count IN number
)
is
	v_bunho tbl_looptest_1.bunho%type := 0;		-- 변수의 초기화
begin
	LOOP
    	v_bunho := v_bunho + 1;
    EXIT WHEN v_bunho > p_count;	-- 탈출조건이 참 이라면 LOOP 탈출
    	insert into tbl_looptest_1(bunho, name) 
        						values(v_bunho, p_name || v_bunho);
    END LOOP;
end pcd_tbl_looptest_1_insert;

이름이 없는 프로시저로 tbl_looptest_1 테이블에 행을 30000개 insert

declare
	v_bunho tbl_looptest_1.bunho%type := 0;	-- 변수의 초기화
    v_name	Nvarchar2(10) := '차은우';
begin
	LOOP
    	v_bunho := v_bunho + 1;
    EXIT WHEN  v_bunho > 30000;		-- 탈출조건이 참이라면 LOOP 를 탈출
    	insert into tbl_looptest_1(bunho, name)
        						values(v_bunho, v_name || v_bunho);
    END LOOP;
end;

FOR LOOP 문

[문법]

for 변수 in [reverse] 시작값..마지막값 loop 반복해야할 실행문장;
end loop;

이름이 없는 프로시저로 tbl_looptest_1 테이블에 행을 40000개 insert

declare
	v_name	Nvarchar2(10) := '이혜리';		-- 변수의 선언 및 초기화
begin
	for i in 1..40000 loop
    insert into tbl_looptest_1(bunho, name) values(i, v_name || i);
    end loop;
end;

WHILE LOOP 문

[문법]

WHILE 조건 LOOP
	반복해야할 실행문장;		-- 조건이 참이라면 실행함.
END LOOP;
```sql
WHILE NOT 조건 LOOP
	반복해야할 실행문장;		-- 조건이 참이라면 반복문을 빠져나감.
END LOOP;

이름이 없는 프로시저로 tbl_looptest_1 테이블에 행을 20000개 insert

declare
	v_cnt	number(5)	:= 1;	-- 변수의 선언 및 초기화
    v_name	Nvarchar2(10) := '쫑쫑이';
begin
WHILE NOT (v_cnt > 20000) LOOP
	insert into tbl_looptest_1(bunho, name) 
    								values(v_cnt, v_name || v_cnt);
    v_cnt := v_cnt + 1;
END LOOP;
end;

정리

-> local_hr에서작업한것

0개의 댓글