zoukankan      html  css  js  c++  java
  • 数据库中的异常(预定义,非预定义,用户自定义)

    DECLARE   --预定义 异常信息 不声明异常
       v_empno emp.empno%TYPE :=&empno;
       
       v_sal    emp.sal%TYPE;
    BEGIN
       SELECT sal INTO v_sal FROM emp WHERE empno=v_empno;
       IF v_sal<=1500 THEN 
            UPDATE emp SET sal=sal+100 WHERE empno=v_empno; 
            DBMS_OUTPUT.PUT_LINE('编码为'||v_empno||'员工工资已更新!');     
       ELSE
            DBMS_OUTPUT.PUT_LINE('编码为'||v_empno||'员工工资已经超过规定值!');
       END IF; 
     
    END; 
    
    ------------------------------------------------------------------------------------------------------
    --用户自定义异常
       DECLARE
       v_empno emp.empno%TYPE :=&empno;     
     --声明变量V_empno,类型 emp.empno%TYPE 类型与emp表empno列类型一致
       no_result  EXCEPTION;
       --声明一个异常 名为 no_result 
    BEGIN
       UPDATE emp SET sal=sal+100 WHERE empno=v_empno;
       IF SQL%NOTFOUND THEN
          RAISE no_result;--触发异常                      -- raise触发
       END IF;
    EXCEPTION
       WHEN no_result THEN --当异常被触发
          DBMS_OUTPUT.PUT_LINE('你的数据更新语句失败了!');
          
       WHEN OTHERS THEN                                   --可以理解为异常包,接收 定义异常之外的 异常  
         DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);
    END; 
    -------------------------------------------------------------------------------------------------------
    --非预定义异常
      
      -- 在PL/SQL 块的声明部分定义异常情况:
        --<异常情况>  EXCEPTION; 
      --将其定义好的异常情况,与标准的ORACLE错误联系起来,使用EXCEPTION_INIT语句 
      --PRAGMA EXCEPTION_INIT(<异常情况>, <错误代码>); 
      --在PL/SQL 块的异常情况处理部分对异常情况做出相应的处理
    
    DECLARE
       v_deptno dept.deptno%TYPE :=&deptno;
       deptno_remaining EXCEPTION;--声明异常
       ---
       PRAGMA EXCEPTION_INIT( deptno_remaining,     -2292);/* -2292 是违反一致性约束的错误代码 */
                              --异常情况         --oracle错误代码
                              
      /* 如果oracle语句执行中出现-2292错误,则触发deptno_remaining异常*/ 
       ---                      
    BEGIN
       DELETE FROM dept WHERE deptno=v_deptno;   
    EXCEPTION
       WHEN deptno_remaining THEN 
          DBMS_OUTPUT.PUT_LINE('违反数据完整性约束!');
       WHEN OTHERS THEN
          DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);
    END; 
    -------------------------------------------------------------------------------------------------------
  • 相关阅读:
    SharePoint 2013 中的SQL Server 安全
    SharePoint 2013 的HTML5特性之响应式布局
    SharePoint 2013 一些小技巧
    SharePoint 2013 排错之"Code blocks are not allowed in this file"
    SharePoint 2013 创建搜索中心及搜索设置
    SharePoint 2013 使用PowerShell创建State Service
    SharePoint 2013 内容部署功能简介
    SharePoint 使用PowerShell恢复误删的网站集
    SharePoint 自定义WebPart之间的连接
    linux之misc及使用misc创建字符设备
  • 原文地址:https://www.cnblogs.com/-strong/p/7233409.html
Copyright © 2011-2022 走看看