ORA-21000: raise_application_error의 0에 대한 수치인수가 범위를 벗어났음, -20000과 -20999 사이에 있어야만 합니다 (ORA-21000: error number argument to raise_application_error of is out of range)

ORA-21000 오류는 raise_application_error 함수를 사용할 때 오류 코드가 잘못된 범위로 지정되어 발생하는 문제입니다. 이 함수는 사용자 정의 오류 메시지를 만들 때 자주 사용하는데, 오류 코드의 범위가 -20000에서 -20999 사이여야만 하기 때문이에요.

예제 코드에서는 -1 같이 범위 밖의 오류 코드를 사용해 보았는데요, 이때 ORA-21000 오류가 발생해요. (참고로 -1 오류는 ORA-00001: unique constraint violated 입니다.)

ORA-21000: raise_application_error의 0에 대한 수치인수가 범위를 벗어났음, -20000과 -20999 사이에 있어야만 합니다

코드에서 raise_application_error 함수 호출 시, 오류 코드가 -20000 이상 -20999 이하의 값으로 설정되어야 합니다.

예를 들어, 코드가 이렇게 되어 있다면,

BEGIN
   raise_application_error(-1, '사용자 정의 예외 발생');
END;
/
BEGIN

ERROR at line 1:
ORA-21000: error number argument to raise_application_error of -1 is out of range
ORA-06512: at line 2

다음과 같이 수정해 주세요

BEGIN
   raise_application_error(-20000, '사용자 정의 예외 발생');
END;
/
BEGIN

ERROR at line 1:
ORA-20000: 사용자 정의 예외 발생
ORA-06512: at line 2

오류 코드는 -20000부터 시작해서 각 오류에 적합한 숫자를 하나씩 늘려 사용하면 관리가 더 편리합니다. 즉, -20000부터 -20999까지의 오류코드는 사용자가 예외를 정의할 수 있도록 오라클이 비워둔 것이지요.

혹시 코드에서 여러 곳에서 raise_application_error를 사용하고 있다면, 오류 코드 관리 규칙을 정해두면 더 깔끔하고 일관성 있게 처리할 수 있을 거예요. 이렇게만 수정해주시면 에러가 해결될 거예요!

이전최근
댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗