<샘플코드에서 사용한 데이터는 HR 스키마이고, 오라클 설치시 생성할 수 있는 기본 스키마 입니다>
이중 for 문에 대해서 알아보겠습니다. 일반적인 프로그래밍에서 사용하는 이중 for문과 유사합니다.
declare
v_star varchar2(100);
begin
for i in 1..5
loop
for j in 1..i
loop
v_star:=v_star||'*';
end loop;
dbms_output.put_line(v_star);
v_star:=null;
end loop;
end;
--------------------------------
*
**
***
****
*****
# 위의 for문 샘플에서 이름을 지정한 샘플입니다.
declare
v_star varchar2(100);
begin
<<outer_loop>>
for i in 1..5
loop
<<inner_loop>>
for j in 1..i
loop
v_star:=v_star||'*';
end loop inner_loop;
dbms_output.put_line(v_star);
v_star:=null;
end loop outer_loop;
end;
-----------------------------------------
*
**
***
****
*****
# inner_loop에서 exit한 경우, outer_loop로 이동한다.
declare
v_star varchar2(100);
begin
<<outer_loop>>
for i in 1..5
loop
<<inner_loop>>
for j in 1..i
loop
v_star:=v_star||'*';
exit;
end loop inner_loop;
dbms_output.put_line(v_star);
v_star:=null;
end loop outer_loop;
end;
---------------------------------------------------------
*
*
*
*
*
# label을 이용하면 2개의 for문을 한번에 벗어날수 있다.
declare
v_star varchar2(100);
begin
<<outer_loop>>
for i in 1..5
loop
<<inner_loop>>
for j in 1..i
loop
v_star:=v_star||'*';
exit outer_loop when i=3 ; # outer_loop까지 한번에 exit 가능함.
end loop inner_loop;
dbms_output.put_line(v_star);
v_star:=null;
end loop outer_loop;
end;
--------------------------------------
*
**
'Database > PLSQL' 카테고리의 다른 글
013 - [Oracle PL/SQL] Records - %type (0) | 2024.02.10 |
---|---|
012 - [Oracle PL/SQL] Continue Statement (0) | 2024.02.09 |
010 - [Oracle PL/SQL] For Loop (0) | 2024.02.09 |
009 - [Oracle PL/SQL] While Loop (0) | 2024.02.08 |
008 - [Oracle PL/SQL] Basic Loop (0) | 2024.02.08 |