mysql 存储过程 传多个参数无法识别

dropprocedureifexistsiterateCategory;createprocedureiterateCategory(inrootIdvarchar(2... drop procedure if exists iterateCategory;
create procedure iterateCategory(in rootId varchar(20),in recordtype varchar(20))
begin
declare done int default 0;
declare b varchar(20);
declare c cursor for select id from cms_category where parent=rootId;
declare continue handler for SQLSTATE '02000' set done = 1;

insert into temp values(rootId);
update cms_category set recordtype=recordtype where id=rootId;
SET @@max_sp_recursion_depth=10;
open c;
fetch c into b;
while(done = 0) do
call iterateCategory(b);
fetch c into b;
end while;
close c;
end;

call iterateCategory('1201011191749550012','1');
调用时报错1318说参数个数不对预期有2个,但只得到一个。传3个参数报错时就是对的说得到3个参数。
我试过把存储过程改成3个参数,但还是类似问题,传3个参数报错说得到一个,传2个参数报错说得到2个。
但当存储过程只有一个参数时就没问题。
我用的mysql5.0+Navicat 8.0
展开
 我来答
百度网友5c91d28
2011-05-12 · TA获得超过5084个赞
知道大有可为答主
回答量:1916
采纳率:50%
帮助的人:1717万
展开全部
存储过程里的递归调用传的是一个参数,这肯定不对
while(done = 0) do
call iterateCategory(b);
fetch c into b;
end while;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式