본문 바로가기

DATA BASE

Predefined ORACLE Exception (미리 정의되어 있는 오라클 예외들)

에러 의 종류 

      1. 컴파일 에러 : PL/SQL 블럭이 파싱(Parsing)될 때 "사용자 오타" 등으로 인해 발생되는 에러.

        (Compile Error)

 

      2. 런타임 에러(=Exception)

          : PL/SQL 블럭이 실행되는 동안 발생하는 에러로 일반적으로 런타임에러를 "Exception"이라 부른다.

            종류)

 

              a. 오라클 예외 

                  : 오라클에서 제공되는 예외(Predefined ORACLE Exception과 Non-Predefined ORACLE Exception이 있다.)

                    ㄱ. Predefined ORACLE Exception 

                          : 사전에 정해진 예외

                          종류)

                            - ACCESS_INTO_NULL 

                                : 정의되지 않은 오브젝트 속성에 값을 할당하고자 했을 때 발생하는 예외.                      

                            - CASE_NOT_FOUND 

                                : CASE문의 when절에 해당되는 조건이 없고 else절도 없을 경우 발생

                            - COLLECTION_IS_NULL 

                                : 선언되지 않은 컬렉션(nested table, varray)에 존재하는 메서드

                                                   이외의 메서드를 사용했을 때 발생되는 예외.

                            - CURSOR_ALREADY_OPEN 

                                : 이미 열려진 커서를 열려고 시도 했을 때 발생하는 예외

                            - DUP_VAL_ON_INDEX 

                                : 유일인덱스에 중복값을 입력햇을 때 발생하는 예외.

                            - INVALID_CURSOR 

                                : 잘못된 커서 조작이 샐행될 때 발생되는 예외.

                            - INVALID_NUMBER 

                                : 문자를 숫자로의 변환 시 실패가 될 때 발생하는 예외.

                            - LOGIN_DENIED 

                                : 잘못된 사용자명이나 암호로 로그인시도시 발생하는 예외.

                            - NO_DATA_FOUND 

                                : PL/SQL Select문이 한 건도 리턴하지 못하는 경우 발생하는 예외.

                            - NOT_LOGGED ON 

                                : 접속되지 않은 상태에서 데이터베이스에 대한 요청이 PL/SQL 프로그램으로

                                  실행된 경우 발생되는 예외.

                            - PROGRAM_ERROR 

                                : PL/SQL이 내부적인 문제를 가지고 있는 경우 발생되는 예외.

                            - ROWTYPE_MISMATCH 

                                : 할당문에서 호스트 커서 변수와 PL/SQL 커서 변수의 데이터 형이 불일치할 때 발생되는 예외

                            - STORAGE_ERROR 

                                : PL/SQL이 실행될 때 메모리가 부족하거나 메모리상에 문제가 일어났을 대 발생하는 예외.

                            - SUBSCRIPT_BEYOND_COUNT 

                                : 컬렉션의 요소 갯수보다 더 큰 첨자 값으로 참조한 경우 발생

                            - SUBSCRIPT_OUTSIDE_LIMIT 

                                : 컬렉션의 첨자 한계를 벗어난 참조가 일어났을 때 발생

                            - SYS_INVALID_ROWD 

                                : 문자열을 ROWID로 변환할 때 무효한 문자열의 표현일 경우 발생되는 예외.

                            - TIMEOUT_ON_RESOURCE 

                                : 자원에 대한 대기시간이 초과했을 때 발생하는 예외.

                            - TOO_MANY_ROWS 

                                : PL/SQL select문이 두건이상의 행을 리턴햇을 때 발생되는 예외.

                            - VALUE_ERROR 

                                : 산술,변환,절삭 크기 제약에 에러가 생겼을 때 발생되는 예외.

                            - ZERO_DIVIDE

                                : 0으로 나누려 했을 때 발생하는 예외.

                  

                    ㄴ. Non-predefined ORACLE Exception

                          : 사전에 정해지지 않은 예외

 

              b. 사용자 정의 예외

                  : 사용자에 의해 정의되는 예외

                    사용자 정의 예외 사용 예)

                      declare (선언부에서)

                      예외명 exception;

                      begin부나 exception부에서 raise문을 이용해서 예외를 발생시킨다.

                      

                      - 예외처리부 형식)

                          -- 예외처리부 : 예외 발생시 어떻게 처리할 것인지에 예외처리 내용이 들어간다.

                        Exception

                          when 예외명 then

                            실행문...

                          when 예외명2 then

                            실행문...

                          when OTHERS then

                            실행문...

 

'DATA BASE' 카테고리의 다른 글

시퀀스 권한주기, 새 시퀀스 생성  (0) 2020.05.15
JSP와 Java로 JSON 만들기  (0) 2020.05.14
Oracle PL/SQL  (0) 2020.05.12
20200507 / DELETE TRUNCATE DROP 차이점 비교  (0) 2020.05.07
자바 - DB 연동  (0) 2020.05.07