您的位置:首页 > 数据库

PL/SQL异常

2016-02-17 12:28 330 查看
一.异常

在oracle中的异常分为3种异常,第一种是预定义异常,这种异常是oracle已经定义好名称的异常,也就是异常名称和异常编码是对应好的。例如:NO_DATE_FOUND 错误编码为+100。第二种就是非预定义异常:这种异常就是有oracle已经给定了错误编码和错误描述,所以不会被触发。当声明一个异常名字并且关联到异常编码,当有异常时就能自动触发。第三种就是自定义异常,需要自己决定异常触发的条件,并且显示触发即用代码调用异常。

--1.非预定义异常
declare
var_id number(4);
test_exception EXCEPTION;
pragma exception_init(test_exception,-00001);
begin
var_id:=11;
update emp e set e.empno = var_id where e.empno = 10;
exception
when test_exception then
dbms_output.put_line(SQLERRM);
rollback;
end;

--2.自定义异常
declare
var_id number(4);
test_exception exception;
pragma exception_init(test_exception,-2000);

begin
select e.empno into var_id from emp e where e.mgr = 7902;
if var_id > 100 then
raise test_exception;
end if;
dbms_output.put_line('===========');
exception
when test_exception then
dbms_output.put_line('大于10');
when TOO_MANY_ROWS then
dbms_output.put_line('too many');
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle plsql 异常