发现一个新情况,主存储过程的结束是不正常的。
CREATE OR REPLACE PROCEDURE "ZHJUSR"."SMAP_MAIN_PROC" AS
V_ERR_NUM
NUMBER;
V_ERR_MSG
VARCHAR2(100);
BEGIN
--为短信下行表添加分区
MP_SMS_MT_ADDPARTS_PROC(30);
--为短信上行表添加分区
MP_SMS_MO_ADDPARTS_PROC(30);
--为彩信下行表添加分区
MP_MMS_MT_ADDPARTS_PROC(30);
--为彩信上行表添加分区
MP_MMS_MO_ADDPARTS_PROC(30);
--为短信内容表添加分区
MP_SMS_CONTENT_ADDPARTS_PROC(3);
--为配额月消耗表添加分区
MP_QUOTA_MON_ADDPARTS_PROC(30);
--为配额发送量天表添加分区
MP_QUOTA_DAY_
ADDPARTS_PROC(30);
--为企业短彩信统计表添加分区
MP_EN_MT_STAT_ADDPARTS_PROC(3);
--为用户登录数统计表添加分区
MP_UR_LOGIN_STAT_ADDPARTS_PROC(3);
--为配额消耗表删除分区
MP_QUOTA_MON_DELPARTS_PROC(10);
--为短信内容表删除分区
MP_SMS_CONTENT_DELPARTS_PROC(4);
--为短信上行表删除分区
MP_SMS_MO_DELPARTS_PROC(100);
--为短信下行表删除分区
MP_SMS_MT_DELPARTS_PROC(100);
--为彩信上行表删除分区
MP_MMS_MO_DELPAR
TS_PROC(100);
--为彩信下行表删除分区
MP_MMS_MT_DELPARTS_PROC(100);
--整合企业短彩信统计表的纪录
MP_EN_MT_STAT_PROC;
--整合地区短彩信统计表的纪录
MP_AREA_MT_STAT_PROC;
--整合用户登录次数统计表的纪录
MP_UR_LOGIN_STAT_PROC;
--整合地区企业用户统计表的纪录
MP_AREA_STAT_MAIN_PROC; ------------------------------这个存储过程中没有写EXCEPTION,在它之后的存储过程没有再执行。
--停用企业历史信息备份并清理数据
MP_BAK_EN_PROC;
--停用企业用户信息清理
MP_EN_USER_PROC;
--清理上行超长短信切片清理
MP_SMS_M
O_PART_PROC;
--整合配额月消耗表的纪录
MP_QUOTA_MON_MERGE_PROC;
--清理短信主表超出三个月的数据
MP_SMS_CLEAR_PROC;
--清理彩信主表超出三个月的数据
MP_MMS_CLEAR_PROC;
--清理彩信附件表超出三个月的数据
MP_MMS_FILE_CLEAR_PROC;
MP_UPDATE_REPORTSTATUS_PROC;
INSERT INTO MP_ERR_TAB(CURDATE, SQLCODE,
SQLERRM, PROCEDURE_NAME)
VALUES(SYSDATE, 0, 'SUCCESS','SMAP_MAIN_PROC');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
V_ERR_NUM := SQLCODE;
V_ERR_MSG := SUBSTR(SQLERRM, 100);
INSERT INTO MP_ERR_TAB(CURDATE, SQLCODE, SQLERRM, PROCEDURE_NAME)
VALUES(SYSDATE, V_ERR_NUM, V_ERR_MSG,'SMAP_MAIN_PROC');
COMMIT;
END;
正常情况下,MP_ERR_TAB表中肯定会插入一条记录的
但是我在表中找不到SMAP_MAIN_PROC在20071003那天的记录
什么情况下存储过程会非正常执行呢?
Oracle存储过程异常处理与日志记录
本文探讨了一个Oracle存储过程在结束时不正常的情况,该过程涉及多个表的分区添加、删除和整合操作。由于缺少EXCEPTION块,当异常发生时,存储过程可能未按预期记录错误信息到MP_ERR_TAB表。分析了可能造成存储过程非正常执行的各种条件,并强调了异常处理在确保数据完整性和系统稳定性方面的重要性。
999

被折叠的 条评论
为什么被折叠?



