MySQL报错Error Code:1318 存储过程procedurainot111参数数量不符问题
错误原因
MySQL错误1318为存储过程调用参数数量不匹配错误,你定义的procedurainot111存储过程一共声明了3个参数:
- 第1个:
OUT kol_sotr INT输出参数,用于存储查询得到的对应部门员工总数 - 第2个:
OUT sumpokaz INT输出参数,用于存储查询得到的对应部门指标总和 - 第3个:
IN number_otd int输入参数,用于指定要查询的目标部门编号
你调用时仅传入了1个输入值,缺少了2个必填的输出参数接收变量,因此触发报错。
修复方案
调用带OUT类型参数的存储过程时,需要先声明用户变量用于接收输出结果,再按参数顺序传入所有参数。
正确调用代码如下:
-- 按参数顺序传入2个接收输出的用户变量 + 1个部门编号输入参数 CALL procedurainot111(@kol_sotr_res, @sumpokaz_res, 1); -- 执行完成后查询变量获取返回结果 SELECT @kol_sotr_res AS 部门员工数, @sumpokaz_res AS 部门指标总和;
补充注意点
你原调用代码中输入参数传入的是字符串格式的
'1',由于参数定义为INT整数类型,直接传入数字1即可,避免隐式类型转换带来的潜在问题。
内容的提问来源于stack exchange,提问作者Kolnie VBFH
相关产品推荐
相关产品推荐

