--异常处理
--系统异常
--该过程从student表中搜索出某一编号的学生姓名,然后将姓名存储到变量x中,
--如果结果集返回为空,则出现异常,NO_DATA_FOUND为系统预定义异常
DECLARE
x varchar(20);
BEGIN
SELECT sname INTO x FROM student WHERE sno=1009;
DBMS_OUTPUT.PUT_LINE(x);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('搜索无结果!');
END;
/
--自定义异常
DECLARE
x varchar(20);
e EXCEPTION;
BEGIN
SELECT sname INTO x FROM student WHERE sno=1001;
IF x='Tom' THEN
RAISE e;
END IF;
DBMS_OUTPUT.PUT_LINE('x的名字为:'||x);
EXCEPTION
WHEN e THEN
DBMS_OUTPUT.PUT_LINE('自定义异常错误');
END;
/