PL-SQL中的异常

--异常处理
 
  --系统异常
  --该过程从student表中搜索出某一编号的学生姓名,然后将姓名存储到变量x中,
  --如果结果集返回为空,则出现异常,NO_DATA_FOUND为系统预定义异常

  DECLARE
   x varchar(20);
   BEGIN
    SELECT sname INTO x FROM student WHERE sno=1009;
    DBMS_OUTPUT.PUT_LINE(x);
    EXCEPTION
     WHEN NO_DATA_FOUND THEN
     DBMS_OUTPUT.PUT_LINE('搜索无结果!');
   END;
   /

 
   
   --自定义异常
  

DECLARE
    x varchar(20);
    e EXCEPTION;
    BEGIN
     SELECT sname INTO x FROM student WHERE sno=1001;
     IF x='Tom' THEN
      RAISE e;
     END IF;
     DBMS_OUTPUT.PUT_LINE('x的名字为:'||x);
     EXCEPTION
      WHEN e THEN
      DBMS_OUTPUT.PUT_LINE('自定义异常错误');
    END;
    /

 

你可能感兴趣的:(sql)