广告
返回顶部
首页 > 资讯 > 数据库 >oracle异常处理
  • 712
分享到

oracle异常处理

oracle异常处理 2016-06-04 15:06:04 712人浏览 才女
摘要

语句执行过程中,由于各种原因使得语句不能正常执行,可能会造成更大错误或整个系统的崩溃,所以PS/sql提供了异常(exception)着一处理的方法来防止此类情况的发生。在代码运行的过程中无论何时发生错误,PL/SQL都能控制程序

oracle异常处理

语句执行过程中,由于各种原因使得语句不能正常执行,可能会造成更大错误或整个系统的崩溃,所以PS/sql提供了异常(exception)着一处理的方法来防止此类情况的发生。在代码运行的过程中无论何时发生错误,PL/SQL都能控制程序自动地转向执行异常部分。

1.预定义异常

预定义异常是由于系统产生的。例如出现0除,PL/SQL就会产生一个预定义的ZERO_DIVIDE异常。

--ZERO_DIVIDE异常。使用系统预定义的异常处理,使用该处理后,程序运行时系统就不会提示出现错误。
 
declare
  v_number1 number(3):=10;
  v_number2 number(3):=0;
  v_number3 number(3);
  
  begin
     v_number3:=v_number1/v_number2;
     DBMS_OUTPUT.PUT_LINE(v_number3);
     EXCEPTION
        when ZERO_DIVIDE then
          DBMS_OUTPUT.PUT_LINE("除数不能为0");
  end;
输出结果:DIVIDE ZERO

 

2.PL/SQL中常见的异常:

 

 

3.转换的错误处理

declare
  v_number1 number(3);
  v_char  char(5):="123c";
  begin
     v_number1:=to_number(v_char);  //将字符转换成数字
     DBMS_OUTPUT.PUT_LINE("转换成功");
     EXCEPTION
        when value_error then
          DBMS_OUTPUT.PUT_LINE("转换没成功");
  end;

 

4.联合的错误处理

declare
   v_name  school_students.stu_name%type;
   begin
      select stu_name into v_name
      from school_students
      where stu_id="2016322180021";
      dbms_output.put_line(v_name);
      EXCEPTION
        when  no_data_found then
           dbms_output.put_line("没有数据");
        when  too_many_rows then
           dbms_output.put_line("数据太多");
        when  ZERO_DIVIDE then
           dbms_output.put_line("列出错列");
      
  end;

 

5.用户定义异常

--用户可以通过自定义异常来处理发生的错误,语法格式为:
exception
   when 异常名 then
        语句块 1;
    when  then
        语句块2;
    [when others then
         语句块3;]
end;

 注意:每个异常处理部分都是由when子句和相应的执行语句组成

 

6.自定义异常

declare
   e_name  exception;
   v_num  number(8);
   begin
      select count(*) into v_num
      from school_students;
     if v_num>10 then
        RaiSE  e_name;
     end if ;
     exception
       when e_name then
       dbms_output.put_line("最大值不能超过10");
    end;

注意:同一个异常不允许多个when子句来处理,一个异常对应一个when子句。

 

7.使用others异常

declare
   v_name  school_students.stu_name%type;
   begin
      select stu_name into v_name
      from school_students
      where stu_id="2016322180021";
      dbms_output.put_line(v_name);
      EXCEPTION
        when  OTHERS then
           dbms_output.put_line("出错了");
  end;

对于一个异常有两个处理方式,分别位于不同的when子句,因此系统会认为是不合法的。可以使用others来处理那些不能由其他when子句处理的异常,others异常处理总是位于exception语句的最后。

其实,others异常处理可以借助两个函数来说明捕捉到的异常的类型,这两个函数是PL/SQL和SQLERRM,其中SQLLOCODE是用来说明当前错误的代码,如果是用户自定义异常。则返回1.SQLERRM返回的是当前错误的信息。

 

8.空操作和空值

declare
  n number(3):=-1;
  begin
     if n<0 then
         null;
     else
        DBMS_OUTPUT.PUT_LINE("正常");
     end if;
  end;

 

您可能感兴趣的文档:

--结束END--

本文标题: oracle异常处理

本文链接: https://www.lsjlt.com/news/6869.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle异常处理
    语句执行过程中,由于各种原因使得语句不能正常执行,可能会造成更大错误或整个系统的崩溃,所以PS/SQL提供了异常(exception)着一处理的方法来防止此类情况的发生。在代码运行的过程中无论何时发生错误,PL/SQL都能控制程序...
    99+
    2016-06-04
    oracle异常处理
  • ORACLE 异常错误处理
    即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件。一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复。任何ORACLE错误(报告为ORA-xxxxx形式的Oracle错误号)、P...
    99+
    2022-10-18
  • oracle sql_profile绑定异常处理
    一 建立测试表create table a nologging as select * from all_objects;二 准备工作找到sql_Id='aq03p7muwgvq5'selec&#...
    99+
    2022-10-18
  • 怎么进行Oracle异常处理
    这篇文章给大家介绍怎么进行Oracle异常处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、异常的优点      如果没有异常,在程序中,应当检查每个命令的成功...
    99+
    2022-10-18
  • Oracle对PL/SQL中的异常处理
    目录一、异常处理1、三种的异常类型:2、异常的SQLCode 和 SQLERRM二、处理预定义例外常见错误预定义的名称三、处理非预定义例外(exception_init)四、处理自定...
    99+
    2022-11-13
  • 异常--python异常处理
    --****--python 异常处理------------------------------------------------------------------------------****DB API中定义了一些数据库操作的错...
    99+
    2023-01-31
    异常 python
  • Oracle专题13之异常错误处理
    1、异常处理的概念与分类 a、什么是异常? 异常:是程序在正常执行过程中发生的未预料的事件。 b、什么是异常处理? 异常处理是为了提高程序的健壮性,使用异常处理部分可以有效地解决程序正常执行过程中可能出现...
    99+
    2022-10-18
  • 异常处理
      程序中有两种错误     1.语法错误(这种错误,根本过不了Python解释器的语法检测,必须在程序执行前就改正) #错误示范一 if #错误示范二 print("adad" 语法错误     2.逻辑错误 # 用...
    99+
    2023-01-30
    异常
  • emqx异常处理
    启动异常 通过解压tar压缩包安装后通过 ./bin/emqx start 启动报错 WARNING: Default (insecure) Erlang cookie is in use. W...
    99+
    2023-10-10
    服务器 运维
  • urllib异常处理
    urllib的error模块定义了由 request模块产生的异常。如果出现了问题,request 模块便会抛出error模块中定义的异常。1 URLErrorURLError类来自urllib库的error模块,它继承自OSError类,...
    99+
    2023-01-30
    异常 urllib
  • Python -- 异常处理
    当一个小人物冲向大时代,有多少伤害埋伏左右;      -- 北岛《城门开》当一个大梦想埋于小身体,有多少潜能冲破束缚。      -- 小Q 《梦想家》-------------------------------------------...
    99+
    2023-01-31
    异常 Python
  • python异常处理
    import re,random,traceback kk ='<img src="//kanimg.9ku.com/Article/20170727/1501135687683763.gif" alt="不要惹怒胖子,后果自己看"&...
    99+
    2023-01-31
    异常 python
  • Python 异常处理
    写一个命令分发器初步要求 : 程序员可以方便地注册函数到某一个命令, 用户输入命令时, 路由到注册的函数, 如果此命令没有对应的函数, 执行默认函数分析 : 输入命令映射到一个函数, 并执行这个函数, 应该是cmd_tbl[cmd] = f...
    99+
    2023-01-31
    异常 Python
  • SpringMVC异常处理
    8.SpringMVC异常处理 1.1 异常处理的思路 系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试等手段...
    99+
    2023-09-01
    spring java mybatis
  • Python——异常处理
    文章目录 异常Python中的异常类捕获与处理异常自定义异常类with语句断言 异常 异常是在程序执行过程中发生的影响程序正常执行的一个事件。异常是Python对象,当Python无法...
    99+
    2023-09-04
    python 开发语言 pycharm
  • 异常处理:PHP中如何捕获和处理异常?
    异常处理:PHP中如何捕获和处理异常?在PHP开发中,异常处理是非常重要的一环。当程序发生意外情况或错误时,我们需要通过捕获和处理异常来保证程序的正常运行。PHP中提供了一套异常处理的机制,本文将介绍如何在PHP中捕获和处理异常,并提供具体...
    99+
    2023-12-18
    捕获 处理 异常
  • JAVA异常与异常处理详解
    一、异常简介什么是异常?异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域的情况,称之为异常。java中异常的体系是怎么样的呢?(推荐:java视频教程)Java中的所有不正常类都继承于Throwable类...
    99+
    2020-06-12
    JAVA
  • Oracle SQL执行计划异常的处理方法
    这篇文章主要介绍“Oracle SQL执行计划异常的处理方法”,在日常操作中,相信很多人在Oracle SQL执行计划异常的处理方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-18
  • Golang异常处理之优雅地控制和处理异常
    目录panic和recover使用使用示例注意子函数panic主函数recover子协程panic主函数recover使用总结使用panic的几点担心性能性能对比安全panic和re...
    99+
    2023-05-16
    Golang异常处理 Golang异常控制
  • oracle 异常
     ORA-00936: 缺失表达式 <select id="getinsertrecord"   parameterType="...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作