> 1414 - OUT or INOUT argument 2 for routine springcloud.test5 is not a variable or NEW pseudo-varia

本文介绍了一种常见的MySQL存储过程错误,即尝试将非变量用作OUT参数,并提供了具体的解决方案。通过使用变量而非直接指定参数名,可以成功地从存储过程中获取输出。
> 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);

解决~~~~~~~~~~~~~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值