oracle异常处理代码_oracle中抛出异常什么意思

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

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

代码100分

 

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

oracle异常处理代码_oracle中抛出异常什么意思

 

 

3.转换的错误处理

代码100分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.用户定义异常

代码100分--用户可以通过自定义异常来处理发生的错误,语法格式为:
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;

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7693.html

(0)
上一篇 2023-03-16 09:00
下一篇 2023-03-16

相关推荐

  • python正则匹配列表中的任意一个_sql的正则表达式查询

    python正则匹配列表中的任意一个_sql的正则表达式查询
    概述 上一章 查询的过滤条件,我们了解了MySQL可以通过 like % 通配符来进行模糊匹配。同样的,它也支持其他正则表达式的匹配,我们在MySQL中使用…

    2023-04-06
    144
  • 5G手机芯片如何选择?「建议收藏」

    5G手机芯片如何选择?「建议收藏」     2020年随着我国5G网络的快速发展,越来越多的5G手机出现在大众视野中。很多人都将5G手机作为换机的首选。当今阶段,5G手机芯片很大程度决定了5G手机的性能,作为消费者应该如何选择5G手…

    2023-02-18
    150
  • mysql配置问题「建议收藏」

    mysql配置问题「建议收藏」mysql8.0版本在配置文件my.ini[mysqld]加上skip-grant-tables后无法启动 需要手动去任务管理器中,关闭mysql服务,步骤如下: 需要用管理员身份打开一个命令提示符…

    2023-04-05
    153
  • 学习Python 3解码

    学习Python 3解码Python是一种高级编程语言,具有简洁、易读且可扩展性强的语法结构,非常适合初学者入门。在Python3中,解码是一个重要的概念。对于初学者来说,学习Python解码对于理解字符编码有重要作用,也是进一步学习其他编程语言和操作系统的必要前提。

    2024-08-27
    24
  • 华为和荣耀应该怎么选?买过华为但我更爱荣耀

    华为和荣耀应该怎么选?买过华为但我更爱荣耀     大家现在提起手机品牌最先想到的是什么?华为、苹果、荣耀等等,市场关注电子产品的小伙伴肯定知道,华为和荣耀经常霸占数码榜,时不时拿下销量冠军、双冠军,市场的认可度越来越高。市场永远是品牌好坏…

    2023-03-14
    154
  • 解析动态IP地址的方法

    解析动态IP地址的方法IP地址是网络通信中的重要概念,是唯一标识互联网上设备的地址。IP地址分为静态IP地址和动态IP地址两种,而动态IP地址是不固定的,会随着时间和网络环境的变化而变化。动态IP地址的变化对网络通信产生了一定的影响,因此需要解析动态IP地址的方法。

    2024-05-13
    71
  • 用 Python 制作游戏脚本

    用 Python 制作游戏脚本在今天的游戏市场中,游戏制作已经不再是只能由程序员和设计师来完成了。现在,越来越多的人开始使用Python编写游戏脚本。Python作为一种高级编程语言,具有很多强大的功能,包括易于学习、简洁的语法和适用于各种平台。这篇文章将介绍如何使用Python编写游戏脚本,并提供一些参考性代码示例。

    2024-05-07
    59
  • F5如何助力数据中心IT进行转型?「建议收藏」

    F5如何助力数据中心IT进行转型?「建议收藏」     事实上在金融互联网业务的大力发展下,越来越多的银行业务对系统架构的容量、弹性能力提出越来越高的要求,相信不少银行的数据中心运维人员已对此深有体会。 那么在F5中,能够帮助数据中心IT进行转…

    2022-12-24
    150

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注