IT/Oracle
반복문(basic loop, while, for loop, continue)
다날92
2018. 12. 8. 22:35
<basic loop문>
loop
pl/sql 문장;
exit(조건);
end loop;
ex)
1 2 3 4 5 6 7 8 9 10 | declare num number := 0; begin loop dbms_output.put_line(num); num := num + 1; exit when num > 10; end loop; end; | cs |
<while문>
while 조건 loop
실행 문장;
end loop;
1 2 3 4 5 6 7 8 | declare num number := 0; begin while num < 11 loop dbms_output.put_line(num); num := num + 1; end loop; end; | cs |
<For 문> : 반복횟수 지정 가능
for n:카운트 횟수 in start..end loop
실행문장;
end loop;
1 2 3 4 5 6 | begin for n in 0..10 loop dbms_output.put_line(n); end loop; end; | cs |
1 2 3 4 5 6 | begin for n in reverse 0..10 loop dbms_output.put_line(n); end loop; end; | cs |
<사원테이블에서 사원id를 입력받아서 사원 이름의 문자수만큼 # 찍는 pl/sql문>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | declare emp_id employees.employee_id%type := &emp_no; emp_name employee.last_name%type; v_no number; v_char varchar2(30); begin select last_name, length(last_name) into emp_name, v_no from employees where employee_id = emp_id; for i in 1..v_no loop v_char := v_char||'#'; dbms_output.put_line(v_char); end loop; end; | cs |
<continue문 : 보조제어문>
1 2 3 4 5 6 7 8 9 10 11 | declare tot number:=0; begin for i in 1..10 loop tot := tot+1; dbms_output.put_line(tot); continue when(i > 5); tot := tot+i; dbms_output.put_line(tot); end loop; end; | cs |