ORACLE中for循环异常处理

时间:2021-12-24 23:51:12
  CREATE PROCEDURE TEST(LEN IN NUMBER) AS
TMPCOUNT NUMBER(8);

BEGIN
TMPCOUNT := 0;

FOR CUR IN 1 .. LEN LOOP
BEGIN
TMPCOUNT := 1/0;

EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('发生错误,程序继续');
CONTINUE;
END;
END LOOP;

DBMS_OUTPUT.PUT_LINE('程序结束');
END;

注意:
PLSQL 中的 BEGIN…END 结构是一个逻辑上的PLSQL块,这个块就是一个代码系列。
BEGIN…END 结构带上例外处理部分,就是一个标准的PLSQL块,如下:

BEGIN
......
EXCEPTION WHEN .. THEN
......

END

程序中有多个这样的结构,容易精确捕捉例外。这种结构可以嵌套,内层的例外没有
捕捉到就会依次向外层传递。