服务器 频道

PL/SQL的异常

  【IT168 服务器学院】1 PL/SQL的异常
  
  DECLARE
   X NUMBER;
  BEGIN
   X:= ''yyyy'';--Error Here
  EXCEPTION WHEN VALUE_ERROR THEN
   DBMS_OUTPUT.PUT_LINE(''EXCEPTION HANDED'');
  END;
  
  2 自定义异常处理
  
  DECLARE
   BAD_ROWID EXCEPTION;
   X ROWID;
  PRAGMA EXCEPTION_INIT(BAD_ROWID,-01445);
  BEGIN
   SELECT ROWID INTO X FROM TAB
   WHERE ROWNUM=1;
  EXCEPTION WHEN BAD_ROWID THEN
   DBMS_OUTPUT.PUT_LINE(''CANNOT QUERY ROWID FROM THIS VIEW'');
  END;
  注意:-01445 因为PRAGMA EXCEPTION_INIT命令把这个变量(-01455)连接到
  这个ORACLE错误,该语句的语法如下:
   PRAGMA EXCEPTION_INIT(exception_name, error_number);
  其中error_number是负数,因为错误号被认为负数,当定义错误时记住使用负号
  
  3 自定义异常
  
  异常不一定必须是oracle返回的系统错误,用户可以在自己的应用程序中创
  建可触发及可处理的自定义异常
  DECLARE
   SALARY_CODE VARCHAR2(1);
   INVALID_SALARY_CODE EXCEPTION;
  BEGIN
   SALARY_CODE:=''X'';
   IF SALARY_CODE NOT IN(''A'', ''B'', ''C'') THEN
   RAISE INVALID_SALARY_CODE;
   END IF;
  EXCEPTION WHEN INVALID_SALARY_CODE THEN
   DBMS_OUTPUT.PUT_LINE(''INVALID SALARY CODE'');
  END;
0
相关文章