• 异常


    18. 异常的基本程序: 通过 select ... into ... 查询某人的工资, 若没有查询到, 则输出 "未找到数据"

    declare
      --定义一个变量
      v_sal employees.salary%type;
    begin
      --使用 select ... into ... 为 v_sal 赋值
      select salary into v_sal from employees where employee_id = 1000;
      dbms_output.put_line('salary: ' || v_sal);
    exception
      when No_data_found then 
           dbms_output.put_line('未找到数据');
    end;

    declare
      --定义一个变量
      v_sal employees.salary%type;
    begin
      --使用 select ... into ... 为 v_sal 赋值
      select salary into v_sal from employees;
      dbms_output.put_line('salary: ' || v_sal);
    exception
      when No_data_found then 
           dbms_output.put_line('未找到数据!');
      when Too_many_rows then 
           dbms_output.put_line('数据过多!');     
    end;

    19. 更新指定员工工资,如工资小于300,则加100;对 NO_DATA_FOUND 异常, TOO_MANY_ROWS 进行处理.






    20. 处理非预定义的异常处理: "违反完整约束条件"

    declare
      --1. 定义异常
      temp_exception exception;
      --2. 将其定义好的异常情况,与标准的ORACLE错误联系起来,使用EXCEPTION_INIT语句
      PRAGMA EXCEPTION_INIT(temp_exception, -2292);
    begin
      delete from employees where employee_id = 100;
    exception
      --3. 处理异常
      when temp_exception then
           dbms_output.put_line('违反完整性约束!');
    end;

    21. 自定义异常: 更新指定员工工资,增加100;若该员工不存在则抛出用户自定义异常: no_result

    declare
      --自定义异常                                   
      no_result exception;   
    begin
      update employees set salary = salary + 100 where employee_id = 1001;
      --使用隐式游标, 抛出自定义异常
      if sql%notfound then
         raise no_result;
      end if;  
    exception
      --处理程序抛出的异常
      when no_result then
         dbms_output.put_line('更新失败');
    end;
    

      

  • 相关阅读:
    18、led驱动程序的实现
    17、字符设备控制技术
    16、驱动访问大揭秘
    14、字符驱动编程模型
    个人开发—进度记录(一)
    个人开发—需求
    学习进度条
    敏捷开发第二阶段个人(七)
    敏捷开发第二阶段个人(六)
    敏捷开发第二阶段个人(五)
  • 原文地址:https://www.cnblogs.com/nbkyzms/p/5031433.html
Copyright © 2020-2023  润新知