Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parameters mysql如何在游标中使用参数?_Parameters_Cursor - Fatal编程技术网

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