mysql 存储过程实例

#参数分为“IN、OUT、INOUT”,IN是输入参数,在存储过程中不可修改,OUT是输出参数,INOUT是输入输出参数

CREATE DEFINER=`sa`@`192.168.1.8%` PROCEDURE `p_materialPlanChange`(IN `p_projectId` varchar(32), IN `p_applicantAccount` varchar(20), OUT `p_flag` int)

BEGIN
#当前日期
declare v_curr_date VARCHAR(10);  #mysql中声明变量时,没有类似于oracle里面的rowtype方式
#当前时间
declare v_curr_time VARCHAR(19);

#异常声明
DECLARE done INT DEFAULT 0;
    #循环退出时需要用到,否则会报错

#游标声明
declare v_procurement_cur cursor for
select tp.id, tp.CurrentStep, tp.CurrentStepID, tp.CurrentStepTime, tp.ProcedureState
from t_procurement tp
where tp.ProjectID=p_projectId

#异常
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

#打开游标
open v_procurement_cur;
#循环执行
REPEAT
fetch v_procurement_cur 
into v_procurementId, v_CurrentStep, v_CurrentStepId, v_CurrentStepTime, v_ProcedureState;

if not done then
#业务处理

..............
end if;

UNTIL done END REPEAT; #退出循环

#关闭游标
close v_procurement_cur;

#设置当前日期值格式:("yyyy-MM-dd")
set v_curr_date = DATE_FORMAT(CURRENT_DATE(),'%Y-%m-%d');


#设置当前时间格式:("yyyy-MM-dd HH:mm:ss")
set v_curr_time = DATE_FORMAT(NOW(), '%Y-%m-%d %T');

#相关业务处理

........

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值