--- ○ 반복문
create table irumtbl
(no number
,name varchar2(10)
) tablespace users; ---  테이블 생성

--- 1. loop 반복문
create or replace procedure p_irumtblins
(v_name in varchar, v_cnt in number)
is
  v_no irumtbl.no%type := 0;  --- 변수지정에서 := 을하면 초기치값을 넣어줄 수 있다.
begin
  loop   -- 반복문 시작  (loop)
   v_no := v_no + 1;
   insert into irumtbl values(v_no, v_name||v_no);
  exit when v_cnt = v_no;  -- 해당 조건이 맞으면 반복문을 빠져 나온다. (exit when)
     end loop; -- 반복문 끝
end;
/
/* exec p_irumtblins('홍길동',10) */
select * from irumtbl;
---------------------------------------------------------------------------------------------
delete irumtbl;

--- 2. for loop 반복문
create or replace procedure p_irumtblins
(v_name in varchar, v_cnt in number)
is

begin
  for a in 1..v_cnt loop
  -- for 루프문 : for 변수 in 시작값..매개변수 loop
  --              시작값을 변수에 넣고 그 변수값이 1씩 증가시켜
  --              입력한 매개변수까지 해당 반복문 실행후 빠져나온다.
  -- 여기서 in 다음에 reverse를 입력하게되면(for a in reverse 1..v_cnt loop)
  -- 변수에 시작값부터 오는것이 아니라 매개변수값부터 넣어주고 1씩 감소시켜 실행한다.
   insert into irumtbl values(a, v_name || a);
  end loop;
end;
/
/* exec p_irumtblins('이순신',10) */
select * from irumtbl;
---------------------------------------------------------------------------------------------
delete irumtbl;

--- 3. while loop 반복문
create or replace procedure p_irumtblins
(v_name in varchar, v_cnt in number)
is
  v_no irumtbl.no%type := 0;
begin
  while v_cnt > v_no loop
  -- while 조건 loop : 조건이 참이면 해당 반복문을 계속 실행하고 거짓이면 반복문을 나온다.
   v_no := v_no + 1;
   insert into irumtbl values(v_no, v_name || v_no);
     end loop;
end;
/
/* exec p_irumtblins('엄정화',10) */
select * from irumtbl;

'Program... > Oracle' 카테고리의 다른 글

Oracle Procedure (Cursor, for loop Cursor)  (0) 2009.03.14
Oracle Procedure (배열)  (0) 2009.03.14
Oracle Function (함수생성)  (1) 2009.03.14
Oracle PL(Procedure Language)/SQL  (0) 2009.03.14
Oracle Sequence  (0) 2009.03.14
Posted by Duritz

공지사항

Yesterday
Today
Total
05-18 14:19

달력

 « |  » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31