对于这类异常情况的处理,首先必须对非定义的ORACLE错误进行定义
步骤如下:
在PL/SQL 块的声明部分定义异常情况:
<异常情况> EXCEPTION;
将其定义好的异常情况,与标准的ORACLE错误联系起来,使用EXCEPTION_INIT语句
PRAGMA EXCEPTION_INIT(<异常情况>, <错误代码>);
在PL/SQL 块的异常情况处理部分对异常情况做出相应的处理。
例:DECLARE
v_deptno dept.deptno%TYPE :=&deptno;
deptno_remaining EXCEPTION;
PRAGMA EXCEPTION_INIT(deptno_remaining, -2292);
/* -2292 是违反一致性约束的错误代码 */
BEGIN
DELETE FROM dept WHERE deptno=v_deptno;
EXCEPTION
WHEN deptno_remaining THEN
DBMS_OUTPUT.PUT_LINE('违反数据完整性约束!');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLCODE||’---‘||SQLERRM);
END;