MySQL存储过程--带参数报错1064

DELIMITER $$

USE `student`$$

DROP PROCEDURE IF EXISTS `sync_student`$$

CREATE DEFINER=`student`@`%` PROCEDURE `sync_student`(para_name varchar)  ----记住varchar类型的参数一定要设置长度,修改为varchar(50),就OK了
BEGIN                                                                                                                   
-- 定义变量
DECLARE id INT;
DECLARE name varchar;
DECLARE course INT;

DECLARE done INT DEFAULT 0;
-- 定义一个游标
DECLARE curCursor CURSOR FOR
SELECT
    d.name AS name,

   d.course as course    

FROM
   student d
WHERE 1 = 1
AND d.name = para_name ;


-- 如果游标指向没有记录,则定义done=1
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;


-- 开始事务
START TRANSACTION;
-- 打开游标
OPEN curCursor;
-- 循环开始
stock_loop:LOOP
-- 获取游标的值,赋值给变量
FETCH curCursor INTO name;

-- 如果游标已经执行完,则跳出stock_loop 循环
IF done=1 THEN
COMMIT;
LEAVE stock_loop;
END IF;

......


-- 循环结束
END LOOP stock_loop;
-- 关闭当前游标
CLOSE curCursor;
-- 事务提交
COMMIT;

END$$

DELIMITER ;

posted on 2017-04-08 17:24  pwang  阅读(5720)  评论(0编辑  收藏  举报

导航