Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-member domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /ledcorps/www/wp/wp-includes/functions.php on line 6114 7.5 SQLCODE, SQLERRM – 대나무숲

7.5 SQLCODE, SQLERRM

출처 http://www.gurubee.net/lecture/1074

SQLCODE, SQLERRM 구문을 사용해서 WHEN OTHERS문으로 트랩(Trap)되는 오류들의 실제 오류 코드와 설명을 볼 수 있다.

  SQLCODE : 실행된 프로그램이 성공적으로 종료하였을때는 오류번호 0을 포함하며, 그렇지 못할 경우에는 해당 오류코드 번호를 포함한다.

  SQLERRM : SQLCODE에 포함된 오라클 오류 번호에 해당하는 메시지를 가진다.

SQLCODE Value설 명
0오류 없이 성공적으로 종료
1사용자 정의 예외 번호
+100NO_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: 실제 인출은 요구된 것보다 많은 수의 행을 추출합니다
    

답글 남기기 0

Your email address will not be published. Required fields are marked *