Oracle的PL_SQL的异常处理

--什么是异常
--异常是在PL/SQL运行过程中有可能出现的错误。

--执行异常的语句
exception
  when [异常] when
    --异常输出信息。

--Oracle的预定义异常
CASE_NOT_FOUND  ora-06592
--case语句中,when子句没有匹配的条件,而且没有else语句,会触发该异常。
NO_DATA_FOUND ORA-01403
--select..into语句没有返回记录,触发该异常
TOO_MANY_ROWS ORA-01422
--select..into语句返回记录多于一条,触发该异常
DUP_VAL_ON_INDEX ORA-00001
--表中唯一索引所对应的列上出现重复值时,引发该异常
VALUE_ERROR ORA-06502
--赋值时,如果变量长度不够,引发该异常
ZERO_DIVIDE ORA-01476
--除数为零时引发的异常
STORAGE_ERROR ORA-06500
--内容溢出或破坏引发该异常
TIMEOUT_ON_RESOURCE ORA-00051
--等待资源超时引发该异常
CURSOR_ALREADY_OPEN ORA-06511
--打开一个已经打开的游标引发该异常

--非预定义异常
1、声明一个异常的名称。
2、把这个异常名称和异常的编号相关联。
--实例
declare
v_t varchar2(5);
v_tt varchar2(3);
tt_8899_exp exception;--声明异常
pragma exception_init(tt_8899_exp,-8899);--exception_init(异常名称,异常代码)

begin
v_t:=‘1111‘;

case v_t
  when ‘222‘ then
    dbms_output.put_line(‘555‘);
    end case;

exception
  when CASE_NOT_FOUND then
    dbms_output.put_line(‘字符串超标‘);
    dbms_output.put_line(SQLERRM);--输出异常信息
    dbms_output.put_line(SQLCODE);--输出异常的代码
 rollback;
    end;

--自定义异常
declare
v_t number(10);

tt_8899_exp exception;--声明异常
pragma exception_init(tt_8899_exp,-8899);--exception_init(异常名称,异常代码)

begin
       v_t:=-1;
       if v_t<0 then
         raise tt_8899_exp;--启动自定义异常tt_8899_exp
         end if;

exception
  when CASE_NOT_FOUND then
    dbms_output.put_line(SQLERRM);--输出异常信息
    dbms_output.put_line(SQLCODE);--输出异常的代码
    when  tt_8899_exp then
      dbms_output.put_line(‘字符串超标‘);
      dbms_output.put_line(SQLERRM);--输出异常信息
    dbms_output.put_line(SQLCODE);--输出异常的代码
 rollback;
    end;
时间: 2024-10-05 06:44:06

Oracle的PL_SQL的异常处理的相关文章

Oracle 学习笔记 17 -- 异常处理(PL/SQL)

程序在执行过程中出现异常是正常的,在程序的编写过程中出现异常也是不可避免的.但是要有相应的异常处理的机 制,来保证程序的正常执行.PL/SQL程序执行过程中出现的错误,称为异常.一个优秀的程序都应该能够正确处理 各种出错的情况,并尽可能的从错误中恢复.PL/SQL提供了异常处理机制. 概念: 异常处理(exception)是用来处理正常执行过程中未预料的事件,程序块的异常处理定义的错误和自定义的错误, 由于PL/SQL程序块一旦产生异常而没有指出如何处理时,程序就会异常的终止. 有三种类型的错误

Oracle客户端PL_SQL的安装

Oracle数据库的操作大多还是在客户端完成的,因此在众多的客户端软件中我选择了PL_SQL,一下谈谈PL_SQL的基本安装和操作,以及在操作中碰到的一些问题: 1. 首先下载PL_SQL客户端软件,可以在Oracle的官网上下载最新版本. http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html 在解压之后直接就可以使用了,点击“exe”可执行文件就可以使用了. 2. 软件的主界面:

Oracle的PL_SQL的结构

--PL/SQL的结构 declare --声明变量和常量关键字 v_name nvarchar2(20); v_age integer;--常规变量声明 v_product table_name.column_name%type;--根据表字段的类型来生命变量 v_con constant int:=12; v_convar constant nvarchar2(20):='常量';--声明常量必须添加关键字constant --声明复合类型变量 type product_rec is rec

oracle数据库中的异常处理

create or replace procedure prc_get_sex (stuname student.name%type) as stusex student.sex%type; begin select sex into stusex from student where name=stuname; dbms_output.put_line('学生' || stuname || '的性别为:' || stusex); exception when too_many_rows the

Oracle 异常处理

1.什么是异常 在PL/SQL中的一个警告或错误的情形都可被称为异常.包括编译时错误(PLS)和运行时错误(ORA).一个异常通常包含一个错误代码和错误文本,分别指示异常的编号和具体错误信息. 异常情况处理(EXCEPTION)是用来处理正常执行过程中未预料的事件,程序块的异常处理预定义的错误和自定义错误,由于PL/SQL程序块一旦产生异常而没有指出如何处理时,程序就会自动终止整个程序运行. 2.异常的分类 1. 预定义 ( Predefined )错误 ORACLE预定义的异常情况大约有24个

Oracle异常处理,动态游标

小例子,方便以后查阅. 包头需要声明:   type C_CURSOR is ref cursor; procedure visitcount(in_date number, out_code out number, out_desc out varchar2 ) is t_date number(8); t_datepre number(8); t_sql varchar2(2000); t_tempcount number(8); c_data C_CURSOR; v_cityname va

【Oracle】第四章异常处理

第四章异常处理 PL/SQL 块是构成 PL/SQL 程序的基本单元 将逻辑上相关的声明和语句组合在一起 PL/SQL 分为三个部分,声明部分.可执行部分和异常处理部分 [DECLARE declarations] BEGIN executable statements [EXCEPTION handlers] END; 以下示例演示了如何使用PL/SQL 语句: declare area integer; width integer; height integer; currentdate d

ORACLE PL/SQL异常处理(Exception)学习笔记

1.PL/SQL错误类型 错误类型 报告者 处理方法 编译时错误 PL/SQL编译器 交互式地处理:编译器报告错误,你必须更正这些错误 运行时错误 PL/SQL运行时引擎 程序化地处理:异常由异常处理子程序引发并进行捕获 2.异常的声明 有两种异常:用户自定义异常和预定义异常 用户自定义异常就是由程序员自己定义的一个错误.该错误还不是非常重要,所以并没有将整个错误包含在Oracle的错误中.例如,它可能是一个与数据有关的错误.而预定义异常则对应于一般的SQL和PL/SQL错误. 用户自定义异常是

Oracle PL/SQL 异常处理

Oracle数据库中的异常:没有异常的转移,因为没有受检异常和非受检异常得区分. 1.异常的产生: 2.异常的处理: declare --变量定义,初始化赋值. begin --变量的赋值,函数调用,if,while等. exception --异常处理代码 when others then 异常处理语句. end: 3.异常的抛出:raise 4.多异常处理:Java的多异常是通过数据类型区分,Oracle数据库的多异常是通过异常编号区分. 区别不同的异常是实现多异常处理前提. declare