oracle的异常

2025-12-29 20:21:00

1、异常的属性;

Oracle中的脾讨宿异常有两个属性:sqlerrm/sqlcode;

测试属性;

oracle的异常

oracle的异常

2、另一种合法的情况:只有查询结果为一条记录,就不会抛出异常;

oracle的异常

3、也会得到同样的结果;

有异常出现的情况;

oracle的异常

oracle的异常

4、非预定义异常;

只有编号,没有名字,所以这样的异常是不能直接使用;只有爬脾给这个编号起个名字,才能使用;

对“在从表中添加的记录里,在外键列中出现了主表中的主键列中没有的值”出现的编号为-2291的异常进行非预定义;

oracle的异常

oracle的异常

5、自定义异常;

     Oracle中的自定义异常,是根据业务逻辑,来自行设置的异常;既没有名称,也没有编号;

     在三类异常中,只有自定义异常可以将异常抛出;raise age_exp;

     当年龄小于0时,会将异常抛出;

6、declare

age number(4):=0;

--给非预定义异常命名;

age_exp exception;

--让非定义异常名称与异常编号关联;

pragma exception_init(age_exp,-30002);

begin

age:= &age;

--if判断相当于try块;

if age<0 then

raise age_exp;

end if;

insert into cc values(xx(100),'aaaa',age);

exception

when age_exp then

        show(sqlerrm);

        show(sqlcode);

when others then

show(sqlerrm);

        show(sqlcode);

end;

/

与Java中的异常蕉离一样,当年龄合法时,异常处理机制不起作用;

oracle的异常

7、当年龄不合法,异常处理机制才会起作用,对发生的异常进行处理;

declare

age number(4):=0;

--给非预定义异常命名;

age_exp exception;

--让非定义异常名称与异常编号关联;

pragma exception_init(age_exp,-20005);

begin

age:= &age;

--if判断相当于try块;

if age<0 then

raise age_exp;

end if;

insert into cc values(xx(100),'aaaa',age);

exception

when age_exp then

show('年龄无效!');

        show(sqlcode);

when others then

        show('other exception...');

end;

/

oracle的异常

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢