一、异常概念:指的是程序在运行过程中出现的错误,当异常发生时,可执行部分的代码会终止运行,
转到响应的异常处理机部分去继续执行。
二、异常的触发方式?
自动触发:当满足一定的条件时,自动发生的异常。
手动触发:需要程序员在块中写raise语句来发生异常。
三、异常的处理方式?
在自己的块中写异常处理机。
在调用环境中传播。
四、异常的类型
1、预定义异常:由Oracle服务器事先声明好的异常,自动被触发的,有名字,有编号。
2、未预定义异常:自动被触发,有编号,没名字。
3、自定义异常:oracle不自动提供,手动触发的,没名字,没编号。
五、如果写异常处理机:
Exception
When 异常名字1 [Or 异常名字2 ....] Then
异常处理代码;
【When 异常名字11 [Or 异常名字21 ....] Then
异常处理代码;
When Others then
异常处理代码;】
六、如何处理预定义异常?
在exception部分写异常处理机即可。
练习:使用insert子句,把员工表中的数据复制一边,要写异常处理代码。
Begin
Insert Into emp Select * From emp;
Exception
When dup_val_on_index Then
dbms_output.put_line('主键重复');
End;
七、SQLCODE和SQLERRM两个函数
Sqlcode:返回最近执行的一条Sql语句的执行代码。
=0,表示没有异常,成功。
=100,表示发生NO_Data_found异常。
<0,表示出现其他异常。
Sqlerrm:返回执行一条SQL语句的相关信息。
既可以用在可执行块,也可以用在异常处理块。
通常使用Sqlcode 是否等于0做sql语句执行成功与否的判断。
八、如何处理未预定义异常?
1、在declare部分先声明异常,语法: 异常名 Exception;
2、使用预编译指令 Pragma exception_init(异常名,异常号);把异常名和异常号进行关联。
3、写异常处理机即可。
注意:使用该种方式既可以处理预定义异常,也可以处理未预定义异常,但要注意同一个异常被两个异常处理机
处理的情况。
九、如何处理自定义异常?
1、在declare部分先声明异常,语法: 异常名 Exception;
2、在程序可执行部分,想抛出异常的代码中使用 raise 异常名,进行触发异常。
3、写异常处理机即可。
练习:使用异常处理方式,判断员工的平均工资,如果平均工资大于5000,触发too_high_exception,否则,触发too_low_exception.
Declare
too_high_exception Exception;
too_low_exception Exception;
v_avgsal emp.sal%Type;
Begin
Select Avg(sal) Into v_avgsal From emp;
If v_avgsal >5000 Then
Raise too_high_exception;
Else
Raise too_low_exception;
End If;
Exception
When too_high_exception Then
dbms_output.put_line('平均工资太高');
When too_low_exception Then
dbms_output.put_line('平均工资正常');
End;
十、异常传递
略。
分享到:
相关推荐
在Oracle数据库中,PL/SQL用于编写存储过程、函数、触发器、游标、异常处理等,这些都极大地增强了数据库的功能和性能。通过使用PL/SQL,开发者可以编写复杂的逻辑,提高数据处理的效率,并且能够更好地控制并发访问...
5. **异常处理**:PL/SQL内置了异常处理机制,允许程序员预定义和捕获运行时错误,以优雅的方式处理程序中断。 **PL/SQL在Oracle中的应用** 1. **数据库操作**:通过PL/SQL,开发者可以直接在数据库中执行插入、...
Oracle 10g PL/SQL 是Oracle数据库系统中用于创建和管理存储过程、函数、触发器等数据库对象的编程语言。本教程旨在为初学者提供一个全面的学习平台,同时也为经验丰富的开发者提供参考资料。PL/SQL是Oracle特有的...
PL/SQL,全称Procedural Language/Structured Query Language,是Oracle数据库提供的一个结合了SQL语句和过程式编程语言的编程环境。它主要用于管理和控制Oracle数据库,是Oracle数据库开发的核心工具之一。PL/SQL...
8. **EXAMP**: 06-EXAMP.SQL、10-EXAMP.SQL以及04-LOOP.SQL可能包含各种PL/SQL编程示例,如控制结构(如循环、条件语句)、异常处理和数据类型使用等。 9. **LOOP**: 04-LOOP.SQL专门涉及PL/SQL中的循环结构,包括...
在Oracle数据库中,PL/SQL提供了丰富的控制结构,如循环、条件判断,以及异常处理机制,使得开发者能够编写复杂的业务逻辑。例如,`IF...THEN...ELSIF...ELSE`语句用于实现条件分支,`WHILE`和`FOR`循环则可以处理...
Oracle PL/SQL是一种强大的编程语言,它结合了SQL(结构化查询语言)的数据库操作能力和过程性编程语言的控制结构。在"Oracle PL/SQL"这本书中,作者深入浅出地探讨了这一语言的核心概念和实用技巧,尤其适合法语...
"Oracle资料学习PL/SQL必备"这个主题涵盖了对Oracle数据库系统以及PL/SQL编程语言的学习资源,特别是针对那些希望深入理解并掌握PL/SQL的初学者或专业人士。PL/SQL的基础部分是了解和使用Oracle数据库的关键,它包括...
ORACLE PL/SQL是从入门到精通的专业知识,涵盖了数据库开发与管理的多个方面,包括触发器、过程、函数、软件包、异常处理、游标、循环、分支、变量使用、数据库安装等关键知识点。 触发器是数据库中用来保证数据...
《Oracle PL/SQL程序设计(第5版)(套装上下册)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何...
### Oracle 9i PL/SQL程序设计笔记精要 #### PL/SQL基础知识概览 **标题与描述**:本文档围绕“Oracle 9i PL/SQL程序设计笔记”这一核心主题,深入探讨了PL/SQL语言的基础知识及其在Oracle 9i数据库环境中的应用。...
3. **异常处理**:Oracle PL/SQL有内置的异常处理机制,通过BEGIN...EXCEPTION部分来捕获和处理运行时错误,增强了程序的健壮性。 4. **游标**:游标是PL/SQL中处理查询结果集的关键工具,允许逐行访问查询结果,...
### Oracle PL/SQL程序设计(第5版)(上下册)知识点概述 #### 一、PL/SQL编程基础 - **PL/SQL简介**:PL/SQL(Procedural Language for SQL)是Oracle数据库的一种内嵌式过程化语言,用于增强SQL的功能。它允许在SQL...
PL/SQL是Oracle数据库系统中的一个关键组成部分,它是一种过程化语言,专为数据库操作设计。这个"PL/SQL最新中文手册"显然是一份详细解释PL/SQL 7.0版本的指南,对于学习和精通Oracle数据库编程至关重要。以下是手册...
Oracle PL/SQL是一种强大的编程语言,它结合了SQL(结构化查询语言)的数据库操作功能与PL/SQL的程序设计特性,广泛应用于Oracle数据库的开发和管理。这本书"Oracle PL/SQL从入门到精通"的配套源代码,显然是为了...
PL/SQL Developer是一款专为Oracle数据库设计的集成开发环境,它极大地简化了PL/SQL语言的编写、调试和管理任务。远程连接Oracle数据库是PL/SQL Developer的一项关键功能,允许用户在本地计算机上操作和管理远程...
PL/SQL是Oracle公司开发的一种过程化语言,全称为Procedural Language/Structured Query Language,它是SQL的一个扩展,专门用于处理Oracle数据库系统。这个“PL/SQL工具”显然是一个用于辅助管理和操作Oracle数据库...
Oracle PL/SQL oracle专用工具
1. **Oracle PL/SQL基础**:PL/SQL是Procedural Language/Structured Query Language的缩写,它是Oracle为SQL添加的编程组件,支持流程控制、异常处理和子程序定义。在构建网上商店时,我们可能需要编写存储过程、...
5. **异常处理**:Oracle PL/SQL提供了丰富的异常处理机制,使得程序能够优雅地处理错误和异常情况,提高代码的健壮性。书中会展示如何使用RAISE、EXCEPTION、WHENEVER等语句来捕获和处理异常。 6. **包**:包是...