我先在只能够通过这种形式捕获。
begin
RAISE_APPLICATION_ERROR(-20999,'APPLICATION_ERROR');
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = -20999 THEN
DBMS_OUTPUT.put_line( SQLERRM );
END IF;
end;
begin
RAISE_APPLICATION_ERROR(-20999,'APPLICATION_ERROR');
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = -20999 THEN
DBMS_OUTPUT.put_line( SQLERRM );
END IF;
end;
WHEN XXXX THEN
-- do some work
end;
errflag := 1;
……
errflag := 2;
……
errflag := 3;
……
errflag := 4;
……errflag := 5;
……
RAISE_APPLICATION_ERROR(-20999,'APPLICATION_ERROR');
EXCEPTION
WHEN OTHERS THEN
IF errflag = 1 THEN
RETURN - 1; --插数据出错-1
IF errflag = 2 THEN
RETURN - 2; --取数据出错-2
IF errflag = 3 THEN
RETURN - 3; --游标出错-3
IF errflag = 4 THEN
RETURN - 4; --对XX表操作-4 IF errflag = 5 THEN
RETURN - 5; --其他出错-5
END IF;end;