> 1414 - OUT or INOUT argument 2 for routine springcloud.test5 is not a variable or NEW pseudo-variable in BEFORE trigger
> 时间: 0s
在学习存储过程时报错如下

需求:调用存储过程时,传入studentId 返回该student的name
原来语句:
CREATE PROCEDURE test5(IN studentId int,OUT username VARCHAR(32))
BEGIN
#使用 declare 声明变量
DECLARE username VARCHAR(32) DEFAULT '';
#调用存储过程时,传入studentId返回该用户的name
SELECT name INTO username FROM student where id = studentId;
#返回变量
SELECT username;
END;
call test5(1,username);
报错
原因:参数是输出参数。因此必须使用一个变量。作出如下修改即可:

即将call test5(1,username);改为call test5(1,@username);
解决~~~~~~~~~~~~~
本文介绍了一种常见的MySQL存储过程错误,即尝试将非变量用作OUT参数,并提供了具体的解决方案。通过使用变量而非直接指定参数名,可以成功地从存储过程中获取输出。

被折叠的 条评论
为什么被折叠?



