随笔 - 75  文章 - 0  评论 - 0  阅读 - 17万 

--PL/SQL错误
  编译时
  运行时

--运行时的出错处理
  EXCEPTION


--异常处理块
DECLARE
 …
BEGIN
 …
EXCEPTION
 WHEN OTHERS THEN
  handler_error(…);
END;


--用户自定义的异常
DECLARE
 e_TooManyStudents EXCEPTION;
 …
BEGIN
 …
 RAISE e_TooManyStudents;
 …
EXCEPTION
 WHEN e_TooManyStudents THEN
  …
END;


--预定义的ORACLE异常
ORA-0001
  DUP_VAL_ON_INDEX
ORA-0051
  TIMEOUT_ON_RESOURCE
ORA-1001
  INVALID_CURSOR

ORA-6533
  SUBSCRIPT_BEYOND_COUNT


--触发异常
RAISE exception_variable
DECLARE
  A EXCEPTION
BEGIN
  …
  RAISE A;
  …
  EXCEPTION
    WHEN A THEN
    …
END;


--处理异常
EXCEPTION
  WHEN e_TooManyStudents THEN
    INSERT INTO log_file(info) 
    VALUES(‘Major 1100 has ‘ || v_CurStudents || ’ max aloowed is ‘ || v_Max);
END;


--处理所有的异常
EXCEPTION
  WHEN e_TooManyStudents THEN
    …
  WHEN OTHERS THEN
    v_ErrCode := SQLCODE;
    v_ErrText := SUBSTR(SQLERRM, 1, 200);
    INSERT INTO log_file(code, message, info)
    VALUES(v_ErrCode, v_ErrText, ‘ORACLE Error’);
END;

posted on   john2017  阅读(174)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示