五、异常错误处理
有三种类型的异常错误:预定义(Predefined)错误、非预定义(Predefined)错误、用户定义(User_define)错误。
例1:预定义的异常处理
declare
v_empno employees.employee_id%type := &v_empno;
v_sal employees.salary%type;
begin
select salary into v_sal from employees where employee_id = v_empno for update;
if v_sal<3000 then
update employees set salary = salary + 3000 where employee_id = v_empno;
dbms_output.put_line('编码为'||v_empno||'员工工资已更新');
else
dbms_output.put_line('编码为'||v_empno||'员工工资不需要更新');
end if;
exception
when no_data_found then
dbms_output.put_line('数据库中没有编码为'||v_empno||'的员工');
when too_many_rows then
dbms_output.put_line('程序运行错误,请使用游标');
when others then
dbms_output.put_line('其他错误');
end;
例2:非预定义的异常处理
declare
v_depno dept.deptno%type := &v_depno;
deptno_remaining exception;
-- -2292 是违反一致性约束的错误代码
pragma exception_init(deptno_remaining,-2292);
begin
delete from dept where deptn = v_depno;
exception
when deptno_remaining then
dbms_output.put_line('违反数据完整性约束');
when others then
dbms_output.put_line(sqlcode||'--'||sqlerrm);
end;
例3:用户自定义的异常处理
declare
v_empid employees.employee_id%type := &v_empid;
no_result exception;
begin
update employees set salary = salary + 100 where employee_id = v_empid;
if sql%notfound then
raise no_result;
end if;
exception
when no_result then
dbms_output.put_line('数据更新失败');
when others then
dbms_output.put_line('出现其他异常');
end;
SQLCODE 返回错误代码数字
SQLERRM 返回错误信息
如:sqlcode=-100 --> sqlerrm='no_data_found'
例4:将ORACLE错误代码及其信息存入错误代码表
create table errors(errnum number(4),errmsg varchar2(100));
declare
err_msg varchar2(100);
begin
/* 得到所有ORACLE错误信息 */
for err_num in -100..0 loop
err_msg:=sqlerrm(err_num);
insert into errors values(err_num,err_msg);
end loop;
end;
drop table errors;
分享到:
相关推荐
PL/SQL程序由一个或多个块组成,每个块都包含声明部分、执行部分和异常处理部分。基本的块结构如下: ```sql DECLARE -- 声明部分,定义变量和游标等 BEGIN -- 执行部分,包含SQL语句和PL/SQL语句 EXCEPTION -- ...
以下是对PL/SQL的学习笔记的详细解析: 1. **什么是PL/SQL语言** PL/SQL是Oracle数据库为数据库管理员和开发人员设计的一种编程语言。它扩展了SQL的功能,允许编写包含控制结构、变量、过程和函数的程序段,这些...
PL/SQL数据库学习笔记 PL/SQL是一种高级的程序语言,主要用于Oracle数据库管理系统中。下面是PL/SQL数据库学习笔记的知识点总结。 一、基本原则 *瀑布模型:需求分析→设计(概要设计,详细设计:SQL语句,变量...
ORACLE PL/SQL是从入门到精通的专业知识,涵盖了数据库开发与管理的多个方面,包括触发器、过程、函数、软件包、异常处理、游标、循环、分支、变量使用、数据库安装等关键知识点。 触发器是数据库中用来保证数据...
这本“PL/SQL超级笔记”显然是针对初学者设计的,旨在帮助他们掌握这一强大的数据库编程工具。 PL/SQL的组成部分包括声明部分、执行部分和异常处理部分。声明部分用于定义变量、常量、游标等;执行部分包含SQL语句...
PL/SQL程序通常由以下几部分组成: 1. **声明部分**:用于声明变量、常量等。 2. **执行部分**:包含具体的执行逻辑,如SQL语句和其他过程化语句。 3. **异常处理部分**:用于捕获并处理可能发生的错误或异常情况。...
1. PL/SQL程序设计简介 PL/SQL是Oracle数据库系统中的核心组成部分,它允许开发者创建复杂的数据处理逻辑。通过PL/SQL,可以编写一系列的SQL语句,并加入控制流语句(如条件判断、循环)、异常处理等,形成一个完整...
### 精通Oracle 10g PL/SQL编程学习笔记 #### 一、PL/SQL综述 **1.1 PL/SQL的功能与作用** PL/SQL (Procedural Language for SQL) 是一种专门为Oracle数据库设计的过程化语言,它结合了SQL的数据处理能力与过程化...
这些笔记涵盖了SQL和PL/SQL的基础知识,适合初学者了解和掌握数据库操作的基本概念和语法。随着经验的积累,开发者可以深入学习高级特性和最佳实践,如性能优化、并发控制、数据库设计等,以提升在Oracle数据库环境...
1.2 PL/SQL程序结构 一个基本的PL/SQL块通常包含以下部分: - DECLARE:声明部分,用于定义变量、常量和游标等。 - BEGIN:执行部分,放置执行的语句,如SQL语句和过程调用。 - EXCEPTION:异常处理部分,用于捕获...
本文将深入探讨PL/SQL程序设计中的一些关键知识点,包括基本语法、记录类型、流程控制、游标使用、异常处理、存储函数与存储过程以及触发器。 1. PL/SQL基本语法: PL/SQL程序由声明、执行和异常处理三部分组成。...
此外,通过将业务逻辑封装在PL/SQL子程序中,可以实现模块化的程序设计,使得代码更易于维护和复用。例如,可以创建一个过程或函数来处理特定的业务规则,然后在多个地方调用这个子程序。 PL/SQL还提供了异常处理...
**PL/SQL程序设计简介** PL/SQL是Oracle数据库中的一种结构化查询语言,它将SQL与过程式编程语言相结合,提供了更强大的数据库操作能力。本笔记版详细介绍了PL/SQL的设计与应用,适合初学者及有一定基础的开发者...
- **PL/SQL** (Procedural Language for SQL) 是 Oracle 数据库的一种扩展,它允许用户在 SQL 的基础上进行更复杂的程序设计。 - **特性**: - **变量与常量定义**:支持变量和常量的定义,增强数据处理能力。 - *...
这篇学习笔记主要关注如何在Oracle数据库中使用PL/SQL的FORALL语句进行批量操作,以及如何利用批绑定(Bulk Binding)来提升性能。此外,笔记还涵盖了存储过程中的参数传递,特别是传入数组的方法,以及SQL优化的...
PL/SQL程序由声明部分、执行部分和异常处理部分组成。基本的PL/SQL块结构如下: DECLARE -- 声明部分: 声明变量、类型、游标和局部存储过程或函数 BEGIN -- 执行部分: 包含程序主体,包括过程和SQL语句 EXCEPTION...
Oracle SQL编程是数据库管理的重要组成部分,特别是在Oracle数据库系统中,SQL与PL/...学习和熟练掌握这些Oracle SQL和PL/SQL的基本概念和技术,将有助于你有效地管理Oracle数据库,编写高效、安全的数据库应用程序。
开发PL/SQL程序通常需要使用特定的开发工具。SQL*Plus是Oracle提供的一种命令行工具,适合基础的PL/SQL开发,例如创建存储过程或显示错误信息。而PL/SQL Developer是一款更高级的集成开发环境(IDE),提供了更丰富...