2012-05-10 4 views
1

시나리오 : 나는 DUP_VAL_ON_INDEX 오류 코드에 대한 상수를 정의 할
그러나oracle 데이터베이스에서 특정 오류 코드를 프로그래밍 방식으로 검색하는 방법은 무엇입니까?

GCN_DUP_VAL_ON_INDEX  CONSTANT NUMBER := -1; 

, 나는 프로그래밍 값을 설정하려는 :이 작업을 수행 할 수있는 방법이

GCN_DUP_VAL_ON_INDEX  CONSTANT NUMBER := DUP_VAL_ON_INDEX.ERRCODE; 

있는가 이 사용자 정의 함수를 만들면서 승/출력 하시겠습니까? :

CREATE OR REPLACE FUNCTION GET_DUP_VAL_ERR_CODE 
RETURN INTEGER 
IS 
BEGIN 
    raise dup_val_on_index; 
EXCEPTION 
    WHEN OTHERS THEN 
     RETURN SQLCODE; 
END; 
/
+2

무엇을 하시나요? 아주 반대되는 일을하는 것이 더 일반적입니다 - 에러 코드에 대한 상수 예외 정의 ... –

+0

forall 루프 중에 erorrs를 대량으로 수집 한 다음 각 예외에 대한 로깅을 수행합니다. 오류 코드를 사용하여 다음에 수행 할 작업을 결정합니다. – ScrappyDev

+0

@scrappythenell'forall'은 해당 데이터 세트의 단일 레코드가 아닌 전체 데이터 세트에 대해 단일 오류를 발생시킵니다. 단일 레코드에 대해 다른 작업을 수행하려면 어떻게됩니까? 그런 상황이 가능한가? – Ben

답변

1

아마도 그렇지 않습니다.

SYS.STANDARD 패키지를 확인하십시오. 모든 예외, SQL 함수 및 "미리 정의 된"모든 것이 실제로 정의 된 곳입니다.

거의 간단 :

DUP_VAL_ON_INDEX exception; 
    pragma EXCEPTION_INIT(DUP_VAL_ON_INDEX, '-0001'); 
관련 문제