科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道PL/SQL的异常

PL/SQL的异常

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  1 PL/SQL的异常      DECLARE    X NUMBER;   BEGIN    X:= 'yyyy';--Error Here   EXCEPTION WHEN VALUE_ERROR THEN    DBMS_OUTPUT.P

作者:中国IT实验室 来源:中国IT实验室 2007年10月1日

关键字: SQL 数据库 SQL Server

  • 评论
  • 分享微博
  • 分享邮件

  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;

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件