CREATE DEFINER=`root`@`%` PROCEDURE `EMP_CONNOByXX`(IN V_GROUP INT)
BEGIN
DECLARE p_done INT DEFAULT 0;
-- 获取字段值
DECLARE p_id INT;
DECLARE p_SIGNDATE VARCHAR(100);
-- 协议编号
DECLARE P_CONNO VARCHAR(200);
-- 声明游标
DECLARE cur1 CURSOR FOR SELECT id,date_format(SIGNDATE,'%Y-%m-%d') AS SIGNDATE FROM emp_contract where IFNULL(contype,0) = 2 and ifnull(CONXXTOS,0) = 1 and IFNULL(SEQID,0) = V_GROUP;
-- 异常处理
DECLARE CONTINUE HANDLER FOR NOT FOUND SET p_done = 1;
-- 打开游标
OPEN cur1;
REPEAT
IF NOT p_done THEN
FETCH cur1 INTO p_id, p_SIGNDATE;
-- 调用协议号生成方法
set P_CONNO = (SELECT EF_CODEDO(2,p_SIGNDATE));
-- 修改协议号
update emp_contract set CONNO = P_CONNO where id = p_id;
-- 回写协议编号
UPDATE Emp_CodeDo SET NewCode = P_CONNO where xtype = 2 and Dodate = p_SIGNDATE;
END IF;
UNTIL p_done END REPEAT;
-- 关闭游标
CLOSE cur1;
select p_id,p_SIGNDATE;
END
MySQL游标定义跟调用
最新推荐文章于 2024-01-15 08:00:00 发布