ORACLE例外(异常)
来源:互联网 发布:双11销售额包括淘宝吗 编辑:程序博客网 时间:2024/05/16 05:20
ORACLE异常处理:
在Oracle数据库中主要分为三类异常:
1,预定义的Oracle数据库错误;
2,非预定义的Oracle数据库错误;
3,用户定义的错误;
----预定义异常 --在Oracle中已经预先定义好名称的异常;
常见的有: no_data_found ; 没有找到数据
too_many_rows; 找到太多数据
invalid_cursor; 失效的游标
zero_divide; 除数为零 捕捉异常方法--直接在异常处理程序中按名称进行捕捉。通过用when 子句。
----非预定义异常--在数据库中没有定义异常名称的异常;为了捕捉到非预定义的异常,必须先创建一个异常名称,然后将错误编号和刚刚创建的异常名称关联起来,这样就可以在异常处理部分通过定义的异常名称来捕捉这个异常了。
----用户自定义异常 --当数据库的一些情况不符合用户的规定时,用户人为判断的异常。需要在声明部分定义异常的名称,然后在执行体中,通过一些逻辑判断决定是否违反了用户的规则,如果违反,则调用raise命令人为触发刚才定义的异常,并在异常处理部分捕捉到这个异常进行处理。
为了能够记录发生的错误信息,Oracle提供了两个相关函数:
1,sqlcode: 返回错误代码
2,sqlerrm:返回与错误代码关联的消息
异常是自里向外逐级传递的
案例1:如果empno的值不存在的时候取到将会是null,此时我们要进行捕获
declare
v_ename varchar2(5);
v_sal number(7,2);
begin
select ename,sal into v_ename,v_sal from emp where empno=&no;
dbms_output.put_line('雇员名:'||v_ename||'工资'||v_sal);
--异常处理
exception
when no_data_found then
dbms_output.put_line('朋友,你输入的编号有误!');
end;
/
Exception
When others then --异常祖宗
Rollback;
Exception
when others then
dbms_output.put_line("全项目-复制认购计划数据异常!");
roolback;
excetpion
when no_data_found then
v_JIAOLOUJIHUANID:=null;
- oracle例外(异常)
- ORACLE例外(异常)
- oracle pl/sql 例外(exception) 异常
- java异常(例外)处理
- 例外-异常
- oracle(7)例外处理
- oracle----例外
- Oracle 10g处理例外(即sql异常)学习一——预定义例外,即常见例外
- Oracle 10g处理例外(即sql异常)学习二——自定义例外和非预定义例外
- C#自定义异常处理(自定义例外)
- C++基础知识(八)例外、异常处理
- orcle数据库中的例外(异常)
- Oracle(七)例外,备份恢复,卸载
- oracle 预定义例外
- oracle 自定义例外
- oracle 使用例外exception
- Oracle:例外exception
- Oracle例外处理
- spring学习之@ModelAttribute运用详解
- mysql 无法启动 :1067进程意外终止
- 在eclipse中玩起btrace
- ORACLE的块
- python中的函数式编程
- ORACLE例外(异常)
- ORACLE的包
- JFinal最简单demo---Hello World
- js校正框架2
- request.getRemoteAddr()问题及解决办法
- IOS:XCode failed to get the task for process解决方法
- ORACLE 的锁
- 全排列与八皇后的转化
- 没有当前目录访问权限/重装系统后无法访问文件夹 解决办法