SQL异常处理
----------------------------------异常处理-----------------------------------------
--异常处理,也叫作错误处理,通常是把异常记录在日志中
----在存储过程中加上异常处理后,让异常原因记录在日志表中。
--注意:异常处理有自己的BEGIN..END..,意思就是异常处理的BEGIN..END..和存储过程的BEGIN..END..不共用。
--语法:
BEGIN ---- ---执行的语句 EXCEPTION --一旦出现异常 WHEN DUP_VAL_ON_INDEX THEN ROLLBACK; --回滚:指的是撤销刚刚执行的语句。 sp_log(p_sp_name,p_step,'异常:'||SQLCODE||sqlerrm); --SQLCODE:异常码 sqlerrm:具体的异常 WHEN OTHERS THEN ROLLBACK; sp_log(p_sp_name,p_step,'异常:'||SQLCODE||sqlerrm); END;
例子:
--例:给SP_STORE中加入异常处理 CREATE OR REPLACE PROCEDURE SP_STORE AS BEGIN SP_LOG('SP_STORE',1,'程序开始'); --① DELETE FROM DW_STORE; SP_LOG('SP_STORE',2,'删除数据完成'); --② --EXECUTE IMMEDIATE 'TRUNCATE TABLE DW_STORE'; --将最新的数据更新到表中。 BEGIN (插入数据) SP_LOG('SP_STORE',3,'插入数据完成'); EXCEPTION --一旦出现异常 WHEN DUP_VAL_ON_INDEX THEN ROLLBACK; --回滚:指的是撤销刚刚执行的语句。 --然后运行日志存储过程 sp_log('SP_STORE',3,'异常:'||SQLCODE||sqlerrm); --SQLCODE:异常码 sqlerrm:具体的异常 WHEN OTHERS THEN ROLLBACK; sp_log('SP_STORE',3,'异常:'||SQLCODE||sqlerrm); END;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧