Oracle PL/SQL 강좌
SQLCODE, SQLERRM 84 8 99,999+

by 구루비 SQLCODE SQLERRM EXCEPTION [2002.01.20]


  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 김영석 [2005.07.02 14:04:12]
예외절 확실히 이해 했어요!!
감사합니다.

by 김윤경 [2007.11.13 10:02:44]
SQLCODE,SQLERRM에 관해 이제 알겠어요.

by 무리 [2008.04.30 00:01:22]
굿.
아엠 갓잇.

by 손님 [2011.01.04 19:39:55]
SQLCODE보다 SQLERRM을 더 많이 쓸거 같은데 어떤가요

by 윤노인 [2011.06.15 15:13:44]
이제야 이해가 되네요
너무너무 감사 감사 합니다~

by 쫑 [2012.01.27 14:22:37]
감사합니다^.^

by 상유니 [2015.08.13 00:25:55]

잘봤습니다. 요런게 있는건 첨 알았네요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입