使用非预定义例外包括三步:首先在定义部分定义例外名,然后在例外和oracle错误之间建立关联,最终在例外处理部分捕捉并处理例外。
定义Oracle错误和例外之间的关系,需要使用伪过程EXCEPTION_INIT,以ORA-02291为例:
DECLARE
BEGIN
EXCEPTION WHEN
END;
输入dno:11
输入empno:7788
例外函数RAISE_APPLICATION_ERRO的介绍:
里外函数包括SQLCODE(去的错误代号),SQLERRM(错误号所对应的错误消息)。
RAISE_APPLICATION_ERROR:只能在子程序中(存储过程、触发器、函数、包)使用,不能在匿名块中使用。错误号必须是在-20000到-20999之间。例子:
create or replace procedure raise_comm
IS
BEGIN
EXCEPTION
END; |
|