샘플코드에서 사용한 데이터는 HR 스키마이고, 오라클 설치시 생성할 수 있는 기본 스키마 입니다.
Exceptions 사용시 흔한 실수
1. for 같은 반복문과 예외처리 할 경우, 예외처리후에 반복문을 계속 처리해야 한다면 아래 코드같은 구조를 조심해야 한다.
# 반복할 for 문이 있음에도 불구하고 예외처리 후 구문이 종료되는 잘못된 경우의 예시 코드.
declare
v_first_name employees.first_name%type;
begin
for i in 99..102
loop
select first_name into v_first_name
from
employees
where employee_id=i;
dbms_output.put_line(i||' ' ||v_first_name);
end loop;
exception
when no_data_found then
dbms_output.put_line('The query doesn''t retrieve any record');
end;
------------------------------------------------------------------------------
The query doesn't retrieve any record
# 예외사항이 발생해도 모든 for 문을 처리하려면 예외처리 코드를 for문 내부에서 처리해야 한다.
declare
v_first_name employees.first_name%type;
begin
for i in 99..102
loop
begin
select first_name into v_first_name
from
employees
where employee_id=i;
dbms_output.put_line(i||' ' ||v_first_name);
exception
when no_data_found then
dbms_output.put_line('The query doesn''t retrieve any record');
end;
end loop;
end;
------------------------------------------------------------------------------
The query doesn't retrieve any record
100 Steven
101 Neena
102 Lex
'Database > PLSQL' 카테고리의 다른 글
029 - [Oracle PL/SQL] Exceptions - User defined Error (0) | 2024.02.21 |
---|---|
028 - [Oracle PL/SQL] Exceptions - Non predefined error (0) | 2024.02.21 |
026 - [Oracle PL/SQL] Exceptions (0) | 2024.02.20 |
025 - [Oracle PL/SQL] Cursor - FOR UPDATE & CURRENT OF (0) | 2024.02.20 |
024 - [Oracle PL/SQL] Cursor - Cursor with Parameters (0) | 2024.02.20 |