oracle教程23 异常错误处理(非预定义异常处理)
非预定义异常处理:
用于处理预定异常不能处理的Oracle错误,此种异常需要在程序中定义。
第一步:
--通过 command window窗口 获取异常的错误代码和错误信息
SET SERVEROUTPUT ON
BEGIN
DELETE FROM DEPT WHERE deptno = &deptno;
EXCEPTION
WHEN OTHERS THEN
--“SQLCODE”获取错误代码 “SQLERRM”获取错误信息
DBMS_OUTPUT.put_line(SQLCODE||'####'||SQLERRM);
END;
第二步:
--非预定义异常的处理
DECLARE
--1:定义非预定义异常的标识符
e_fk EXCEPTION;
--2:将定义好的异常与Oracle错误建立关联
-- -2292错误代码(通过SQLCODE获取的)
PRAGMA EXCEPTION_INIT(e_fk,-2292);
BEGIN
DELETE FROM DEPT WHERE deptno = &deptno;
EXCEPTION
--3:捕获并处理异常
WHEN e_fk THEN
DBMS_OUTPUT.PUT_LINE('此部门下有员工,不能删除此部门!');
WHEN OTHERS THEN
DBMS_OUTPUT.put_line(SQLCODE||'####'||SQLERRM);
END;
还没有评论,来说两句吧...