Parameters mysql如何在游标中使用参数?
它不起作用。游标参数未知。 在这种情况下,我们如何使用参数?非常感谢Parameters mysql如何在游标中使用参数?,parameters,cursor,Parameters,Cursor,它不起作用。游标参数未知。 在这种情况下,我们如何使用参数?非常感谢 CREATE PROCEDURE proUpdateMember(inDate Date) DETERMINISTIC BEGIN DECLARE v_memberId INT; DECLARE dueDate, lastTwelfthDueDate date; DECLARE done INT DEFAULT FALSE; DECLARE UpdateMember(inDueDate dat
CREATE PROCEDURE proUpdateMember(inDate Date)
DETERMINISTIC
BEGIN
DECLARE v_memberId INT;
DECLARE dueDate, lastTwelfthDueDate date;
DECLARE done INT DEFAULT FALSE;
DECLARE UpdateMember(inDueDate date ,inLastTwelfthDueDate date)
CURSOR FOR select member_id from tableMember where
member_due_date BETWEEN inLastTwelfthDueDate and inDueDate;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
set dueDate = (inDate - INTERVAL 1 MONTH);
set lastTwelfthDueDate = (dueDate - INTERVAL 12 MONTH);
OPEN UpdateMember(dueDate,lastTwelfthDueDate); /* input parameter */
read_loop: LOOP
FETCH UpdateMember INTO v_memberId;
IF done THEN LEAVE read_loop; END IF;
select v_memberId;
end if;
END LOOP;
CLOSE UpdateMember;
END$$
事实上,我们不需要使用
游标的参数输入。
其工作正常,如下所示:
创建过程proUpdateMember(inDate日期)
确定性
开始
声明v_memberId INT;
宣布截止日期,最后的截止日期;
声明done INT DEFAULT FALSE;
声明UpdateMember
用于从tableMember中选择成员\u id的光标,其中
会员截止日期介于第二个截止日期和第二个截止日期之间;
声明未找到的继续处理程序SET done=TRUE;
设置dueDate=(inDate-间隔1个月);
设置lastTwelfthDueDate=(dueDate-间隔12个月);
打开UpdateMember;
读循环:循环
将UpdateMember提取到v_memberId中;
如果完成,则离开读取循环;如果结束;
选择v_memberId;
如果结束;
端环;
关闭UpdateMember;
结束$$
事实上,我们不需要使用光标的参数输入。
其工作正常,如下所示:
创建过程proUpdateMember(inDate日期)
确定性
开始
声明v_memberId INT;
宣布截止日期,最后的截止日期;
声明done INT DEFAULT FALSE;
声明UpdateMember
用于从tableMember中选择成员\u id的光标,其中
会员截止日期介于第二个截止日期和第二个截止日期之间;
声明未找到的继续处理程序SET done=TRUE;
设置dueDate=(inDate-间隔1个月);
设置lastTwelfthDueDate=(dueDate-间隔12个月);
打开UpdateMember;
读循环:循环
将UpdateMember提取到v_memberId中;
如果完成,则离开读取循环;如果结束;
选择v_memberId;
如果结束;
端环;
关闭UpdateMember;
结束$$
如果您可以选择:
从MariaDB10.3.0,光标可以具有以下参数-
请参见此处的ggod示例
示例:光标(…)
如果您可以选择:
从MariaDB10.3.0,光标可以具有以下参数-
请参见此处的ggod示例
示例:光标(…)
DECLARE cur CURSOR(pmin INT, pmax INT) FOR SELECT