疑难杂症(7)-- ORACLE中for循环异常处理

  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  

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

你可能感兴趣的:(疑难杂症)