专业只做数据库实训和认证的品牌机构

微信公众号新浪微博
免费咨询电话:400-0909-964
当前位置: 网站首页 > DBA实战 > DBA课程 > Oracle入门知识:PL/SQL的预定义异常

Oracle入门知识:PL/SQL的预定义异常

文章来源: 更新时间:2016/7/20 15:43:46

在线老师点击咨询:

最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!

我要咨询

Oracle入门知识:PL/SQL的预定义异常,在程序运行时出现的错误,称为异常。发生异常后,语句将停止执行,PL/SQL引擎立即将控制权转到PL/SQL块的异常处理部分。异常处理机制简化了代码中的错误检测。PL/SQL中任何异常出现时,每一个异常都对应一个异常码和异常信息。比如:

图1 PL/SQL中的异常

·预定义异常

为了Oracle开发和维护的方便,在Oracle异常中,为常见的异常码定义了对应的异常名称,称为预定义异常,常见的预定义异常有:

异常名称

异常码

描述

DUP_VAL_ON_INDEX

ORA-00001

试图向唯一索引列插入重复值

INVALID_CURSOR

ORA-01001

试图进行非法游标操作。

INVALID_NUMBER

ORA-01722

试图将字符串转换为数字

NO_DATA_FOUND

ORA-01403

SELECT INTO语句中没有返回任何记录。

TOO_MANY_ROWS

ORA-01422

SELECT INTO语句中返回多于1条记录。

ZERO_DIVIDE

ORA-01476

试图用0作为除数。

CURSOR_ALREADY_OPEN

ORA-06511

试图打开一个已经打开的游标

表6 PL/SQL中预定义异常

PL/SQL中用EXCEPTION关键字开始异常处理。具体语法是:

语法格式:异常处理

BEGIN

      --可执行部分

      EXCEPTION   -- 异常处理开始

      WHEN 异常名1 THEN

      --对应异常处理

       WHEN 异常名2 THEN

      --对应异常处理

      ……

       WHEN OTHERS THEN

      --其他异常处理

END;

语法解析:

异常发生时,进入异常处理部分,具体的异常与若干个WHEN子句中指明的异常名匹配,匹配成功就进入对应的异常处理部分,如果对应不成功,则进入OTHERS进行处理。

案例10 :异常处理

代码演示:异常处理

SQL> DECLARE

  2        newSal emp.sal % TYPE;

  3  BEGIN

  4        SELECT sal INTO newSal FROM emp;

  5  EXCEPTION

  6        WHEN TOO_MANY_ROWS THEN

  7            dbms_output.put_line('返回的记录太多了');

  8        WHEN OTHERS THEN

  9            dbms_output.put_line('未知异常');

 10  END;

 11  /

返回的记录太多了

PL/SQL procedure successfully completed

本文地址:http://www.cuug.com.cn/dba/kecheng/12525033819.html 转载请注明!


在线预约 抢先报名 获取课程排期

Oracle培训机构

金牌讲师<>

冉乃纲-老师CUUG金牌讲师
冉老师 CUUG金牌讲师 Oracle及RedHat高级讲师、Unix/Linux 资深专家...[详细了解老师]

免费咨询上课流程 客服在线中

陈卫星-老师CUUG金牌讲师
陈老师 CUUG金牌讲师 精通Oracle管理、备份恢复、性能优化 11年Ora...[详细了解老师]

免费咨询上课流程 客服在线中

选学校如何选择适合自己的学校

CUUG -CHINA UNIX USER GROUP,是国际UNIX组织UNIFORUM的中国代表,是国内悠久的专业UNIX培训机构,被誉为中国UNIX 的摇篮。多年来,以提高教学质量为本,强调素质教育,积极引进、消化国外的新技术,有效的结合中国....[详情]

一站式服务(从入学到就业一帮到底)

入学

学习

就业

实操

食宿
地址:北京市海淀区北清路164号28-38号院
课程咨询:010-59426307 010-59426319 400-0909-964
企业服务:137 1818 8639(陈经理)
部分信息来源于网络,如有错误请联系指正!
版权所有@北京神脑资讯技术有限公司 (CUUG,中国UNIX用户协会) Copyright 2016 ALL Rights Reserved 京ICP备11008061号-1