相关疑难解决方法(0)

程序中的PL/SQL异常处理

这是一个关于最佳实践的问题.我有一个类似于此的PL/SQL块

DECLARE

    --work variables

    PROCEDURE p1(in_parameter1, out_parameter1, out_parameter2...) IS
    BEGIN    
        --do stuff
        --select ( ... ) into ( ... ) from t1 where ( ... )
    END;

    PROCEDURE p2(in_parameter1, out_parameter1, out_parameter2...) IS
    BEGIN 
        --do stuff
        --insert/update tables
        --do more stuff
    END;    

BEGIN -- MAIN PROCESS STARTS HERE

    open c1;
    fetch c1 into c1RowData;
    EXIT WHEN c1%NOTFOUND    
     --call procedure1
     --do stuff
     --call procedure2
     --do stuff
     --do stuff
     --call procedure1
     --call procedure2
END;
/
EXIT;
Run Code Online (Sandbox Code Playgroud)

过程p1和p2中的语句可能会引发异常(NO_DATA_FOUND,DUP_VAL_ON_INDEX,...).

您认为处理此异常的最佳方法是什么?它们是应该在程序内处理还是你认为我应该用TRY-CATCH块围绕每个调用主体中的程序?

plsql stored-procedures exception-handling

1
推荐指数
1
解决办法
2885
查看次数