반복제어
loop문
--Anonymous Procedure
--loop문
set serveroutput on
set verify off
declare
v_cnt number := 1;
v_str varchar2(20) := null;
begin
loop
v_str := v_str || '*';
dbms_output.put_line(v_str);
v_cnt := v_cnt + 1;
--loop문 종료조건
exit when v_cnt > 10;
end loop;
end;
/
set verify on
set serveroutput off
loop문 예제 (구구단 출력)
--loop문 (구구단)
set serveroutput on
set verify off
accept p_gugu prompt '구구단 입력할 숫자 : '
declare
v_gugu number := to_number(&p_gugu);
v_cnt number := 1;
v_gugucnt number := 0;
begin
if v_gugu > 9 or v_gugu < 2 then
dbms_output.put_line('2~9사이의 숫자를 넣어주세요');
else
loop
v_gugucnt := v_gugu * v_cnt;
dbms_output.put_line(v_gugu || ' * ' || v_cnt || ' = ' || v_gugucnt);
v_cnt := v_cnt + 1;
--loop문 종료조건
--exit when v_cnt > 9;
if v_cnt > 9 then
exit;
end if;
end loop;
end if;
end;
/
set verify on
set serveroutput off
while loop문
--while loop문
set serveroutput on
set verify off
declare
v_cnt number := 1;
v_str varchar2(20) := null;
begin
--조건문이 '참'일 경우 작동!
while v_cnt < 10 loop
v_str := v_str || '*';
dbms_output.put_line(v_str);
v_cnt := v_cnt + 1;
end loop;
end;
/
set verify on
set serveroutput off
for loop문
--For loop문
set serveroutput on
set verify off
declare
v_str varchar2(20) := null;
begin
for i_idx in 1..10 loop
v_str := v_str || '*';
dbms_output.put_line(v_str);
end loop;
end;
/
set verify on
set serveroutput off
조건제어
if문
--조건제어 (IF문)
set serveroutput on
set verify off
accept p_employee_id prompt '입력할 사원 번호 : '
declare
v_employee_id emp.employee_id%type := &p_employee_id;
v_salary emp.salary%type;
begin
select salary
into v_salary
from employees
where employee_id = v_employee_id;
--if문 시작
if v_salary > 5000 then
dbms_output.put_line('5000이상 사원' || v_employee_id);
else
dbms_output.put_line('5000이하 사원' || v_employee_id);
end if;
--if문 끝
end;
/
set verify on
set serveroutput off
'ORACLE > PL/SQL' 카테고리의 다른 글
프로시저(Procedure) 실습 - 주민등록번호 검사기 (out 파라미터) (0) | 2013.02.22 |
---|---|
명명 프로시저(Procedure) 기본 이론 & 생성 실습 (0) | 2013.02.22 |
PL/SQL insert문 사용 실습 (0) | 2013.02.22 |
PL/SQL 변수의 영역 확인 (0) | 2013.02.21 |
외부값(치환변수) 받아서 레코드(%rowtype)로 뽑아내기 (0) | 2013.02.21 |