mysql中的存储过程返回null

mysql中的存储过程返回null,mysql,sql,stored-procedures,Mysql,Sql,Stored Procedures,我在mysql数据库中创建了下表 create table stud_info(Student_ID int,Name varchar(10),Class varchar(10),Marks int) 我还创建了一个存储过程来检索给定id的名称,如下所示: DELIMITER // create procedure selectEmp2(IN num1 INT,OUT name varchar(20)) BEGIN select Name INTO name from myDB.stud_in

我在mysql数据库中创建了下表

create table stud_info(Student_ID int,Name varchar(10),Class varchar(10),Marks int)
我还创建了一个存储过程来检索给定
id
的名称,如下所示:

DELIMITER //
create procedure selectEmp2(IN num1 INT,OUT name varchar(20))
BEGIN
select Name INTO name from myDB.stud_info where Student_ID=num1;
END//

调用存储过程时,我得到的是
null
值。请告诉我哪里出了问题。

我认为您的存储过程应该可以工作,但我建议为可能是唯一的参数命名。我也更喜欢显式变量赋值,因为
select-into
可以表示不同的含义。这行吗

DELIMITER //
create procedure selectEmp2(IN in_num1 INT, OUT out_name varchar(20))
BEGIN
    select si.Name into out_name
    from myDB.stud_info si
    where si.Student_ID = in_num1;
END;//

试试这个:

DELIMITER //
create procedure selectEmp2(IN _num1 INT,OUT _name varchar(20))
BEGIN
select Name INTO _name 
from myDB.stud_info 
where Student_ID=_num1;
END//

在运行sql developer错误报告时,上面的语句给出了错误-您的sql语法有错误;请查看与MySQL服务器版本对应的手册,以了解使用myDB.stud\u info si中的接近“:=si.Name的正确语法,其中si.Student\u ID=in\u num1;在第3行结束,如何调用存储过程?windows和sql developer及mysql客户端