存储过程返回null

问题描述:

我有以下表在MySQL数据库中创建。存储过程返回null

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;// 
+0

通过SQL Developer的运行 错误报告时,上面的语句是给错误 - 您的SQL语法错误;检查对应于你的MySQL服务器版本使用附近的“正确的语法手册:= si.Name 从myDB.stud_info SI 其中si.Student_ID = in_num1; 第3行END' – zilcuanu

试试这个:

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// 
+0

我该如何调用存储过程? – zilcuanu

+0

你正在使用哪个平台 – Vysakh

+0

窗口和工作在SQL开发人员和MySQL客户端 – zilcuanu