define => raise => when 이름 then
create or replace procedure up_exceptions4(a number)
is
v_sal emp.sal%type;
e_too_small exception; -- define exception
begin
select sal into v_sal
from emp
where empno = a;
if v_sal < 1000 then
raise e_too_small; -- raise exception
end if;
p('잘 처리되었사옵니다, 주인님!');
end;
/
exec up_exceptions4(7788)
exec up_exceptions4(7369) --> 에러: ORA-06510: PL/SQL: 처리되지 않은 user-defined 예외 상황
↓ ↓ ↓
create or replace procedure up_exceptions4(a number)
is
v_sal emp.sal%type;
e_too_small exception; -- define exception
begin
select sal into v_sal
from emp
where empno = a;
if v_sal < 1000 then
raise e_too_small; -- raise exception
end if;
p('잘 처리되었사옵니다, 주인님!');
/*
... 여러 실행문 ...
... 여러 실행문 ...
*/
exception
when e_too_small then -- trap exception
p('기본 급여가 너무 적사옵니다, 주인님!');
end;
/
exec up_exceptions4(7788)
exec up_exceptions4(7369)
'Oracle > PL/SQL' 카테고리의 다른 글
15일차 PL/SQL Program Unit Chapter 1 - Procedures (0) | 2012.04.24 |
---|---|
15일차 # 8-22: [5] RAISE_APPLICATION_ERROR 프로시져 (0) | 2012.04.24 |
15일차 # 8-16: [3] when others then (0) | 2012.04.24 |
15일차 # 8-14: [2] 이름 부여 => when 이름 then (0) | 2012.04.24 |
15일차 # 8-11: [1] when 이름 then (0) | 2012.04.24 |