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