<샘플코드에서 사용한 데이터는 HR 스키마이고, 오라클 설치시 생성할 수 있는 기본 스키마 입니다>
- 에러처리를 고급스럽게 처리하는 방법, 샘플코드, 사용자 정의 오류와 오라클 표준 에러를 동시에 처리하는 방법
delete from DEPARTMENTS
/*
Error report -
ORA-02292: integrity constraint (HR.EMP_DEPT_FK) violated - child record found
*/
declare
e_fk_err exception;
pragma EXCEPTION_INIT (e_fk_err, -02292);
begin
delete from DEPARTMENTS;
exception
when e_fk_err then
RAISE_APPLICATION_ERROR (-20001, 'error');
end;
/*
Error report -
ORA-20001: error
ORA-06512: at line 8
*/
# 이렇게 처리하면 사용자정의 에러뿐만 아니라 오라클에서 정의한 에러 정보도 동시에 표시 가능하다
declare
e_fk_err exception;
pragma EXCEPTION_INIT (e_fk_err, -02292);
begin
delete from DEPARTMENTS;
exception
when e_fk_err then
RAISE_APPLICATION_ERROR (-20001, 'error',true);
end;
/*
Error report -
ORA-20001: error
ORA-06512: at line 8
ORA-02292: integrity constraint (HR.EMP_DEPT_FK) violated - child record found
ORA-06512: at line 5
*/
- 상수를 이용하여 표현을 간략하게, 오류도 줄일수 있는 방법
- 로컬 서브프로그램을 이용하여 코드를 간결하게 처리
'Database > PLSQL' 카테고리의 다른 글
067 - [Oracle PL/SQL] AUTONOMOUS TRANSACTION (0) | 2024.04.09 |
---|---|
066 - [Oracle PL/SQL] Design - Definer's right, Invoker's rights (0) | 2024.04.09 |
064 - [Oracle PL/SQL] Dynamic SQL - DBMS_SQL Package VS Execute immediate (0) | 2024.03.20 |
063 - [Oracle PL/SQL] Dynamic SQL - to compile packages (0) | 2024.03.20 |
061 - [Oracle PL/SQL] Dynamic SQL - INTO Clause (0) | 2024.03.13 |