SQLCODE, SQLERRM 구문을 사용해서 WHEN OTHERS문으로 트랩(Trap)되는 오류들의 실제 오류 코드와 설명을 볼 수 있다.
SQLCODE : 실행된 프로그램이 성공적으로 종료하였을때는 오류번호 0을 포함하며, 그렇지 못할 경우에는 해당 오류코드 번호를 포함한다.
SQLERRM : SQLCODE에 포함된 오라클 오류 번호에 해당하는 메시지를 가진다.
SQLCODE Value | 설 명 |
---|---|
0 | 오류 없이 성공적으로 종료 |
1 | 사용자 정의 예외 번호 |
+100 | NO_DATA_FOUND 예외 번호 |
음수 | 위에 것을 제외한 오라클 서버 에러 번호 |
SQLCODE, SQLERRM 예제
SQL> CREATE OR REPLACE PROCEDURE Errcode_Exception (v_deptno IN emp.deptno%type ) IS v_emp emp%ROWTYPE ; BEGIN DBMS_OUTPUT.ENABLE; -- ERROR발생 for문을 돌려야 됨 SELECT * INTO v_emp FROM emp WHERE deptno = v_deptno; DBMS_OUTPUT.PUT_LINE('사번 : ' || v_emp.empno); DBMS_OUTPUT.PUT_LINE('이름 : ' || v_emp.ename); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('ERR CODE : ' || TO_CHAR(SQLCODE)); DBMS_OUTPUT.PUT_LINE('ERR MESSAGE : ' || SQLERRM); END; / -- DBMS_OUTPUT.PUT_LINE을 출력하기 위해 사용 SQL> SET SERVEROUTPUT ON; -- 실행예제 SQL> EXECUTE Errcode_Exception(30); RR CODE : -1422 ERR MESSAGE : ORA-01422: 실제 인출은 요구된 것보다 많은 수의 행을 추출합니다
태그
문서에 대하여
- - 강좌 URL : http://www.gurubee.net/lecture/1074
- - 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- - 구루비의 모든 강좌는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.
'IT > 오라클' 카테고리의 다른 글
Oracle PL/SQL 강좌 9. Trigger(트리거) (0) | 2015.11.24 |
---|---|
Oracle PL/SQL 강좌 8. Package(패키지) (0) | 2015.11.24 |
Oracle PL/SQL 강좌 7.4. 사용자 정의 예외(User-Defined Exceptions) (0) | 2015.11.24 |
Oracle PL/SQL 강좌 7.3. 미리 정의되지 않은 예외(Non-Predefined Exception) (0) | 2015.11.24 |
Oracle PL/SQL 강좌 7.2. 미리 정의된 예외(Predefined Exceptions) (0) | 2015.11.24 |