Oracle中的异常处理:
1.Oracle内置的已命名的异常,如no_data_found。
例:
create or replace procedure p_test_exception(p_userid in varchar2,p_empno in varchar2)
as
v_ename varchar2(32);
v_error_text varchar2(500);
begin
begin
select ename into v_ename from emp where empno = p_empno;
exception
when no_data_found then
v_error_text := '没有empno为' || p_empno || '的员工';
t_log_package.log_error(p_userid,'',v_error_text);
return;
end;
update emp set salary = salary + 1000 where empno = p_empno;
commit;
end p_test_custom_exception;
2.用户自定义异常:
2.1在声明部分用custom_exception_name exception;声明一个自定义异常
2.2根据程序逻辑抛出异常:raise exception;
2.3在异常处理部分处理异常:
when custom_exception_name then
这种异常是我们根据业务逻辑抛出的异常。
例:
create or replace procedure p_test_custom_exception(p_userid in varchar2)
as
user_exception exception;
v_count number:= 0;
v_error_text varchar2(500);
begin
select count(*) into v_count from student s where s.class is null;
if v_count = 0 then
v_error_text := 'There are ' || v_count || ' student(s) has/have not been assigned classes.';
raise user_exception;
end if;
exception
when user_exception then
p_package_error.log_error(p_userid,'p_test_custom_exception',v_error_text);
end p_test_custom_exception;
3.用户自定义异常:
3.1.在声明部分用custom_exception_name exception;声明一个自定义异常;
3.2在声明部分用 PRAGMA EXCEPTION_INIT(custom_exception_name,oracle_error_code);来初始化异常。
3.3在异常处理部分处理异常。
这种类型适合处理Oracle的一些未命名的异常,如表被锁。
ps:我们通常可能直接使用的when others来处理。
例:
create or replace procedure p_test_custom_exception(p_userid in varchar2,p_empno in varchar2,p_salary in number)
as
lock_wait exception;
--ORA-00054: 资源正忙,要求指定 NOWAIT
PRAGMA EXCEPTION_INIT(lock_wait,-54);
v_count number:= 0;
v_error_text varchar2(500);
begin
update emp e set e.salary = e.salary + p_salary where e.emp_no = p_empno;
commit;
exception
when lock_wait then
rollback;
v_error_text := '表被锁,请稍候再试!';
p_package_error.log_error(p_userid,'p_test_custom_exception',v_error_text);
end p_test_custom_exception;
ps:以上例子仅是举例,可能不太合理。
- 浏览: 240429 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (295)
- 数据库 (44)
- Java Web (26)
- Js+Css+Html (52)
- 证券 (1)
- 技术书籍 (2)
- Log4j (2)
- 收发邮件 (3)
- UML (6)
- tomcat (1)
- 开发工具 (21)
- java基础 (46)
- 设计模式 (2)
- Java Web Start (2)
- 即时通信解决方案 (2)
- Ant (7)
- 持续集成 (1)
- android (10)
- Ibatis (2)
- WebService (2)
- Ext (42)
- Ejb (2)
- flex (2)
- struts (5)
- dwr (1)
- 一笑而过 (2)
- FreeMarker (1)
- excel (2)
- hibernate (2)
- Jbpm (1)
- spring (1)
- Windows7 仿 WindowsXP 风格的主题 . (0)
- 情感 (0)
- 平安业务知识 (1)
- 报表 (2)
- 集群/负载均衡 (1)
- Linux (1)
- 单元测试 (1)
- Html5&Css3 (5)
最新评论
-
guji528:
很前面,不错
StarUML使用说明-指导手册 -
qincidong:
freezingsky 写道忘记是tomcat5还是5以前的版 ...
让Tomcat支持目录浏览 -
freezingsky:
忘记是tomcat5还是5以前的版本,默认是开启目录浏览的。那 ...
让Tomcat支持目录浏览 -
314649444:
不错,挺实用的 配置
让Tomcat支持目录浏览
发表评论
-
MySQL命令行执行SQL脚本
2013-09-05 14:27 672MySql命令行执行SQL的2种方式: 第一种方式:在未 ... -
oracle group by子句的几种用法
2013-08-14 15:39 1225Oracle的GROUP BY语句除了最基本的语法外,还支持 ... -
Oracle空值排序——排到前面或后面
2013-08-14 10:58 11201.使用order by 列名 nulls first,将此 ... -
ORA-0131:Insufficient privileges. Note:Debugging requires the DEBUG CONNECT SESS
2013-08-13 16:00 1231使用PL/SQL developer调试procedure时 ... -
Oracle keep index
2013-08-07 19:11 676一个表的主键使用了唯 ... -
查看创建trigger的语句
2013-08-07 19:07 436在PLSQL DEV中没有权限查看TRIGGER时,可以用下 ... -
去掉oracle字段的默认值
2013-08-06 19:59 1709为表的字段添加默认值的语法: alter table ta ... -
记录一次删除Oracle表字段的非空约束
2013-08-06 12:59 2181一个表表结构指定了某个字段(如cno)not null,同时 ... -
plsql批量执行脚本
2013-08-05 10:46 1822如果脚本数量很多,手动执行脚本效率很低,而且如果涉及到多个用 ... -
Oralce自定义函数实现字符串分割
2013-07-22 14:43 8091.定义自定义类型,函数返回自定义类型SQL> cre ... -
oracle和Mysql连接数据库
2010-05-08 08:49 354Mysql方式: import java.sql.C ... -
存储过程动态参数
2011-07-28 15:59 742create or replace procedure t ... -
Oracle标签的使用
2011-07-28 16:01 686在用Code Xpert扫描代码时,提示“Avoid unl ... -
oracle大批量数据更新
2011-07-28 16:06 881比如现在对一个表增加一个流水字段,非空,唯一。 该表数据量 ... -
Oracle查找某个字段所在的表
2011-08-31 14:32 596--查找该用户下(其他表如果有访问权限也算)有备注的字段中某 ... -
SYS_GUID()与sequence的比较【转】
2011-09-01 14:27 606文章转载于:http://www.cnblogs.com/B ... -
oracle中的''和null
2011-09-09 15:29 625declare v_new varchar2(20) ... -
MSSQL用批处理执行多个sql脚本
2011-09-10 02:57 512开始->运行->cmd->osql -?可 ... -
Oracle查询字段所在表及字段长度
2011-09-19 14:14 1189--查询包含DNO字段,且字段长度<10的表。 se ... -
Oracle产生随机数
2011-09-19 21:58 4201.随机数: dbms_random.value(1,n) ...
相关推荐
oracle笔记异常处理,异常处理的代码案例和知识点笔记!
Oracle异常处理是数据库管理和应用程序开发中的关键环节,它涉及到对程序执行过程中可能出现的错误和异常情况进行有效管理和响应。Oracle数据库,作为一款广泛使用的商业关系型数据库管理系统,提供了强大的异常处理...
Oracle 存储过程异常处理是指在 Oracle 数据库中使用存储过程时出现的异常情况的处理方法。异常处理是指在程序执行过程中出现错误或异常时,采取相应的处理措施,以确保程序的可靠性和安全性。 一、异常的优点 ...
能够检测并且进行错误处理的叫做异常,一般分为用户自定义异常,系统预定义异常。 预定义异常 一:除数是0的系统异常 declare v_number Number(2):=10; v_zero Number(2):=0; v_result Number...
根据ORACLE提供的异常处理机制,我们可以将异常分为三类: 1. **预定义异常**:这是由ORACLE系统预先定义好的一组异常,当特定的错误发生时,系统会自动抛出相应的异常。例如,在尝试插入一条已经存在的记录到具有...
oracle异常处理步骤自己总结的,不太成熟,大家可以不看,只是我的备忘录
Oracle 存储过程 exception 异常处理大全及实例经典最终是 Oracle 数据库中存储过程的异常处理机制。异常处理是指在程序执行过程中出现的错误或未预料到的事件,需要通过异常处理机制来捕捉和处理这些错误,以确保...
这个是oracle课成异常处理章节后面的部分习题答案,大概四五道题的答案。
总结来说,Oracle异常处理是通过预定义和自定义异常来实现的,它增强了程序对错误的响应能力,帮助开发者在遇到问题时能够有序地处理,避免程序崩溃,保证系统的正常运行。理解并熟练掌握Oracle的异常处理机制,对于...
ORACLE 用户自定义异常小例子 1.进入pl/sql测试窗口 2.执行语句 declare empname varchar2(255); customize_exp EXCEPTION; –自定义异常 begin FOR c IN (select d.* from scott.dept d) ...
#### 一、Oracle异常处理机制简介 在Oracle PL/SQL编程中,异常处理是一项非常重要的功能。它可以帮助开发者捕获并处理程序运行时可能发生的错误情况,确保应用程序能够稳定可靠地运行。Oracle PL/SQL支持多种类型...
Oracle 异常处理是 PL/SQL 编程中不可或缺的一部分,它允许开发者优雅地处理程序运行时遇到的各种错误。在 PL/SQL 中,异常处理主要分为预定义异常、非预定义异常以及自定义异常。 预定义异常是 Oracle 为常见错误...
在Oracle数据库中,游标(Cursor)和异常处理(Exception Handling)是PL/SQL编程的重要组成部分,它们在处理复杂逻辑和确保数据完整性方面起到关键作用。以下是对这两个主题的详细阐述。 首先,让我们来理解Oracle...
Others 异常处理器将对所有语法的异常情态进行处理,一般放在异常处理的最后,可以保证所有的错误都被检测到。 Oracle 异常及触发器提供了一种有效的错误处理机制,可以帮助程序员更好地处理程序执行过程中的错误。
在Oracle PL/SQL中,**异常处理**是确保程序健壮性的重要机制。异常可以分为预定义异常和自定义异常两种类型。 ##### 4.1 预定义异常 Oracle提供了一系列预定义异常,如`NO_DATA_FOUND`、`TOO_MANY_ROWS`等,这些...
Oracle 异常处理是PL/SQL编程中的关键组成部分,它允许开发者优雅地处理程序执行过程中可能出现的错误,确保系统的稳定性和可靠性。异常处理是通过异常情况(EXCEPTION)和异常处理器(EXCEPTION HANDLER)来实现的...
"Oracle SGA 参数调整导致数据库启动异常处理方法" 在 Oracle 数据库中,SGA(System Global Area)参数调整可能会导致数据库启动异常。这种情况下,需要了解 SGA 参数的调整方法和恢复数据库的方法。 一、SGA ...
在本篇讨论中,我们将深入理解Oracle游标、异常处理以及如何在存储过程中使用它们。 1. **Oracle游标**: - **定义**:Oracle游标是数据库系统提供的一种机制,用于在结果集中定位并处理单条记录。它实际上是一个...
oracle预定义异常, ORACLE开发存储过程,函数,触发器等程序时,会经常使用到异常处理,该文档列举了常见的异常以及异常说明