mysql存储过程异常_mysql存储过程异常处理

DELIMITER $$USE`mtnoh_aaa_platform`$$DROP PROCEDURE IF EXISTS`proc_eoms_electric_power_generation_check_engine`$$CREATE DEFINER=`dwgl`@`%` PROCEDURE`proc_eoms_electric_power_generation_check_engine`(

p_oil_engine_idINT,

p_task_idINT,

p_task_snVARCHAR(40),

P_task_userVARCHAR(255),

P_task_use_dateDATETIME,

P_task_end_dateDATETIME)BEGIN

DECLARE p_oil_engine_Status,P_oil_engine_use_status VARCHAR(300);DECLARE p_engine_id,p_engine_id_old,p_use_task_id,p_work_flow_version_id INT;DECLARE p_use_task_sn VARCHAR(40);DECLARE result_code CHAR(5) DEFAULT '00000'; DECLARE msg TEXT;DECLARE set_error_code CHAR(1);DECLARE result_info,success_info TEXT;DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGINGET DIAGNOSTICS CONDITION1 result_code = RETURNED_SQLSTATE, msg =MESSAGE_TEXT;ROLLBACK;UPDATEmtdwgl_res.tb_irms_material_oil_engine oeSET oil_engine_use_status = '空闲'

WHERE oe.deleted = '0' AND oe.oil_engine_id =p_oil_engine_id;SET result_info = CONCAT('校验油机状态失败,错误代码:',result_code,',错误信息:',CHAR(13),CHAR(10),IFNULL(msg,''));SELECTresult_info;END;

STARTTRANSACTION;SELECToe.oil_engine_Status,oe.oil_engine_use_status,oe.oil_engine_id,ic.task_id,ic.task_snINTOp_oil_engine_Status,P_oil_engine_use_status,p_engine_id,p_use_task_id,p_use_task_snFROMmtdwgl_res.tb_irms_material_oil_engine oeLEFT JOINmtnoh_aaa_resource.tb_task_electricity_generation_info_current icON oe.oil_engine_id =ic.oil_engine_idWHERE oe.deleted = '0' AND oe.oil_engine_id =p_oil_engine_id

LIMIT1;SELECTic.oil_engine_idINTOp_engine_id_oldFROMmtnoh_aaa_resource.tb_task_electricity_generation_info_current icWHERE ic.task_id = p_task_id AND ic.task_sn =p_task_sn

LIMIT1;IF (p_oil_engine_Status = '在用' AND P_oil_engine_use_status = '空闲') OR p_use_task_sn = p_task_sn THEN

SET p_work_flow_version_id :=mtnoh_aaa_platform.get_work_flow_version_id(p_task_sn);IF IFNULL(p_engine_id_old,p_oil_engine_id) <> p_oil_engine_id THEN

UPDATEmtdwgl_res.tb_irms_material_oil_engine oeSET oil_engine_use_status = '空闲'

WHERE oe.deleted = '0' AND oe.oil_engine_id =p_engine_id_old;END IF;UPDATEmtdwgl_res.tb_irms_material_oil_engine oeSET oil_engine_use_status = '发电'

WHERE oe.deleted = '0' AND oe.oil_engine_id =p_oil_engine_id;INSERT INTOmtnoh_aaa_resource.tb_task_electricity_generation_info_current

(oil_engine_id,work_flow_version_id,task_id,task_sn,task_user,task_use_date,task_end_date)VALUES(p_oil_engine_id,p_work_flow_version_id,p_task_id,p_task_sn,P_task_user,P_task_use_date,P_task_end_date)ON DUPLICATE KEY UPDATE task_user =P_task_user

,task_use_date=P_task_use_date

,task_end_date=P_task_end_date;ELSE

IF IFNULL(p_engine_id,-1) <> -1 THEN

SELECTp_oil_engine_Status,P_oil_engine_use_status;END IF;END IF;COMMIT;END$$

DELIMITER ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值