Oracle中异常处理
作者:网络转载 发布时间:[ 2016/7/12 11:49:30 ] 推荐标签:数据库 Oracle
错误处理
能够检测并且进行错误处理的叫做异常,一般分为用户自定义异常,系统预定义异常。
预定义异常
一:除数是0的系统异常
declare
v_number Number(2):=10;
v_zero Number(2):=0;
v_result Number(5);
begin
--v_number/v_zero,会产生系统异常
v_result:=v_number/v_zero;
end;
二:处理上面的异常
declare
v_number Number(2):=10;
v_zero Number(2):=0;
v_result Number(5);
begin
--v_number/v_zero,会产生系统异常
v_result:=v_number/v_zero;
Exception
when ZERO_DIVIDE THEN
DBMS_OUTPUT.put_line('除数不能为0');
end;
三:多异常处理
declare
v_result country.country_name%type;
begin
select country_name into v_result
from country where country_name='BeiJing';
DBMS_OUTPUT.put_line('the country name is '||v_result);
exception
when TOO_MANY_ROWS then
DBMS_OUTPUT.put_line('There is TOO_MANY_ROWS error');
when NO_DATA_FOUND then
DBMS_OUTPUT.put_line('There is NO_DATA_FOUND error')
END;
常见的系统预定义异常
1
DUP_VAL_INDEX
违反了性
2
LOGIN_DENIED
用户名或密码错误
3
NO_DATA_FOUND
没有发现数据
4
TOO_MANY_ROWS
数据行太多
5
VALUE_ERROR
算法或转换错误
自定义异常
调用自定义异常处理需要使用raise关键字处理
一:自定义异常过程
declare
v_overNmber EXCEPTION; --定义异常处理变量
v_salesNumber Number(9); --当前的订单数
v_maxNumber Number(9):=500; --定义允许的大值
begin
--从表中取出数量
select count(*) into v_salesNumber from sales;
--比较当前单数和大的单数的,如果超过大单数,进行异常处理
if v_maxNumber<v_salesNumber then
--进行异常处理
raise e_overNumber;
end if;
exception
when e_overNumber then
DBMS_OUTPUT.put_line('查到的单数超过大数,数据异常');
end;
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11