当前位置:七道奇文章资讯数据防范Oracle防范
日期:2011-01-25 22:55:00  来源:本站整理

全面解析Oracle developer的非常处理机制-入门底子[Oracle防范]

赞助商链接



  本文“全面解析Oracle developer的非常处理机制-入门底子[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

    Oracle developer以其快速的数据处理开辟而闻名,其非常处理机制也是对比完善,不可小觑.

    1、 非常的长处

    假如没有非常,在程序中,该当查抄每个号令的成功还是失利,如

BEGIN

SELECT ...

-- check for ’no data found’ error

SELECT ...

-- check for ’no data found’ error

SELECT ...

-- check for ’no data found’ error

    这种实现的办法缺陷在于错误处理没有与正常处理脱离,可读性差,利用非常,可以便利处理错误,并且非常处理程序与正常的事件逻辑脱离,提高了可读性,如

BEGIN

SELECT ...

SELECT ...

SELECT ...

...

EXCEPTION

WHEN NO_DATA_FOUND THEN -- catches all ’no data found’ errors

    2、 非常的分类

    有两种范例的非常,一种为内部非常,一种为用户自定义非常,内部非常是履行期间返回到PL/SQL块的ORACLE错误或由PL/SQL代码的某操作惹起的错误,如除数为零或内存溢出的情形.用户自定义非常由开辟者显示定义,在PL/SQL块中传送信息以掌握关于利用的错误处理.

    每当PL/SQL违反了ORACLE原则或超越了系统依靠的原则就会隐式的产生内部非常.因为每个ORACLE错误都有一个号码并且在PL/SQL中非常通过名字处理,ORACLE供应了预定义的内部非常.如SELECT INTO 语句不返回行时产生的ORACLE非常NO_DATA_FOUND.关于预定义非常,现将最常用的非常摆列以下:

    exception oracle error sqlcode value condition

    no_data_found ora-01403 +100 select into 语句没有符合条件的记录返回

    too_mang_rows ora-01422 -1422 select into 语句符合条件的记录有多条返回

    dup_val_on_index ora-00001 -1 关于数据库表中的某一列,该列已经被限制为唯一索引,程序试图存储两个反复的值

    value_error ora-06502 -6502 在转换字符范例,截取或长度受限时,会发生该非常,如一个字符分配给一个变量,而该变量声明的长度比该字符短,就会引发该非常

    storage_error ora-06500 -6500 内存溢出

    zero_divide ora-01476 -1476 除数为零

    case_not_found ora-06592 -6530 关于挑选case语句,没有与之相匹配的条件,同时,也没有else语句捕捉其他的条件

    cursor_already_open ora-06511 -6511 程序试图翻开一个已经翻开的游标

    timeout_on_resource ora-00051 -51 系统在等候某一资源,时间超时

    假如要处理未命名的内部非常,必须利用OTHERS非常处理器或PRAGMA EXCEPTION_INIT .PRAGMA由编译器掌握,大概是关于编译器的注释.PRAGMA在编译时处理,而不是在运行时处理.EXCEPTION_INIT奉告编译器将非常名与ORACLE错误码结合起来,这样可以通过名字引用肆意的内部非常,并且可以通过名字为非常编写一得当的非常处理器.

    在子程序中利用EXCEPTION_INIT的语法以下:

PRAGMA EXCEPTION_INIT(exception_name, -Oracle_error_number);

    在该语法中,非常名是声明的非常,下例是其用法:

DECLARE

deadlock_detected EXCEPTION;

PRAGMA EXCEPTION_INIT(deadlock_detected, -60);

BEGIN

... -- Some operation that causes an ORA-00060 error

EXCEPTION

WHEN deadlock_detected THEN

-- handle the error

END;

    关于用户自定义非常,只能在PL/SQL块中的声明部份声明非常,非常的名字由EXCEPTION关键字引入:

reserved_loaned Exception

    产生非常后,掌握传给了子程序的非常部份,将非常转向各自非常掌握块,必须在代码中利用以下的构造处理错误:

Exception

When exception1 then

Sequence of statements;

When exception2 then

Sequence of statements;

When others then


  以上是“全面解析Oracle developer的非常处理机制-入门底子[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • Win 7安装失利 多种缘由全面解析
  • 全面解析:为什么Windows7分区越多越糟
  • 全面解析:为什么Windows 7分区越多越糟
  • 全面解析为什么Windows7分区越多越糟
  • 全面解析为什么Windows 7分区越多越糟
  • 全面解析解除假弊端复合机硬件利用本领
  • <b>Oracle碎片整理全面解析</b>
  • <b>全面解析Delphi 2006新增特点</b>
  • 全面解析Oracle developer的非常处理机制-入门底子
  • <b>全面解析Oracle数据库中的分区功效</b>
  • 超越Win7:Ubuntu10.10新特点全面解析
  • 电子特工全面解析之应对战略
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .