zoukankan      html  css  js  c++  java
  • 异常

    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;
    

      

  • 相关阅读:
    bzoj 1497 最小割模型
    bzoj 1024 暴力深搜
    POJ1163(简单的DP)
    POJ3287(BFS水题)
    N皇后问题(DFS)
    BFS求解迷宫的最短路径问题
    poj2386(简单的dfs/bfs)
    Fence Repair(poj3253)
    Best cow Line(POJ 3617)
    全排列
  • 原文地址:https://www.cnblogs.com/nbkyzms/p/5031433.html
Copyright © 2011-2022 走看看