개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

- SQLCODE, SQLERRM

일반적인 Error처리를 위하여 Oracle에서 제공하는 함수인 SQLCODE, SQLERRM을 활용할 수 있습니다.

 

 

 

[예제10] User Defined EXCEPTION의 예제9에서 작성한 Procedure를 이용하여 데이터를 입력하되 단, 커미션을 30%로 지정하여 실행하시오.

 

 

 

[예제11] 예제 9에서 실행시에 해당 COMMISSION_PCT를 입력하지 않는 경우에도 프로그램이 정상적으로 수행되도록 User Defined EXCEPTION의 예제9에서 작성한 프로그램을 보완하면 다음과 같습니다.

 

앞의 예제7, 예제9번과 같이 PL/SQL에서의 SELECT~ INTO~문은 정확히 한 행의 데이터만 검색이 가능하고 여러 행의 데이터가 넘어오는 경우나 한 행의 데이터도 검색되지 않는 경우에는 에러가 발생합니다. 따라서 사용자가 검색하고자 하는 데이터가 여러 행인 경우에는 Explicit CURSOR를 사용하여야 하는데 다음 절에서 CURSOR의 활용을 알아보기로 합니다.

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

3. User Defined EXCEPTION

사용자 정의 EXCEPTION은 oracle server error는 아니고, 사용자가 정한 조건이 만족되지 않을 때, Error를 발생시키는 방법입니다. DECLARE Section에서 EXCEPTION명을 정의하고 BEGIN Section에서 RAISE문을 써서 에러를 발생시킵니다. 그리고 EXCEPTION Section에서 에러 처리문을 기술합니다.

 

 

 

 

 

 

[예제9] S_EMP 테이블에 새로운 사원을 입력하는 프로그램을 작성하면 다음과 같습니다.단, 사번은 일련번호로 부여할 수 있도록 값을 지정하고 이름, 직책, 급여, 커미션은 사용자가 입력합니다.

단, 급여를 600이하로 입력시에는 입력이 불가능하도록 처리합니다.

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

2. Non-Predefined EXCEPTION

Oracle Server Error중 미리 정의되지 않은 Error는 사용자가 DECLARE Section에서 EXCEPTION명을 정의하고 Oracle Server에서 제공하는 Error번호를 사용하여 Error와 연결한 후 EXCEPTION Section에서 Error처리 Routine을 기술합니다.

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

1. Predefined EXCEPTION

DECLARE Section에서 선언할 필요가 없습니다.  Oracle Server 에러 중에서 자주 발생되는 20가지 에러에 대해 미리 정의되어 있는 EXCEPTION입니다.
해당 EXCEPTION 처리 루틴에서 미리 정의된 EXCEPTION명을 참조하여 에러를 처리합니다. Predefined EXCEPTION의 종류에는 다음과 같은 것들이 있습니다.

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

WHEN OTHERS 구문은 EXCEPTION 처리의 마지막 구문으로서 미리 선언되지 못한 모든 경우의 EXCEPTION처리를 가능하게 합니다.
EXCEPTION Keyword에 의해 Error처리가 시작됩니다.
EXCEPTION 처리구문이 필요하지 않으면 생략할 수 있습니다.

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

* Exception 이란 : PL/SQL에서 발생하는 Error

EXCEPTION은 PL/SQL Block의 실행중에 발생하여 Block의 작업을 중단시킵니다. PL/SQL이 EXCEPTION을 발생시킬 때 Block은 항상 종료되겠지만 마지막 조치작업을 수행하도록 EXCEPTION Section을 작성할 수 있습니다

 

 

- EXCEPTION이 발생되는 2가지 방법 

① PL/SQL이 Oracle Server 에러가 발생하면 이와 관련된 EXCEPTION이 자동 발생하는 방법 

 

② Block에 RAISE문을 써서 명시적으로 EXCEPTION을 발생시키는 방법 
BEGIN Section에서 EXCEPTION이 발생하면 EXCEPTION Section의 해당 EXCEPTION 처리부로 제어가 넘어갑니다. 

 

+ Recent posts