DECLARE
TYPE V_ARR IS VARRAY(10) OF VARCHAR2(30);
exception_val EXCEPTION;
--M_ARR V_ARR;
M_ARR V_ARR := V_ARR('1', '2', '3', '4');
ErrorCode VARCHAR2(100); --返回值,错误编码
BEGIN
FOR R IN 1 .. M_ARR.COUNT LOOP
DBMS_OUTPUT.put_line(M_ARR(R));
IF (R = 3) THEN
ErrorCode := 'ERROR Hello';
RAISE exception_val; -- 抛出异常
END IF;
END LOOP;
EXCEPTION
WHEN exception_val THEN
ROLLBACK;
DBMS_OUTPUT.put_line('自定议异常');
RAISE_APPLICATION_ERROR(-20111, ErrorCode); --将应用程序专有的错误从服务器端转达到客户端应用程序 error_number用于定义不正确号,该不正确号必须在-20000到-20999之间的负整数;
WHEN OTHERS THEN
ROLLBACK;
DBMS_OUTPUT.put_line('其它异常');
END;