我在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
值。请让我知道我哪里出错了。
答案 0 :(得分:1)
我认为您的存储过程应该有效,但我建议为可能唯一的参数指定名称。我也更喜欢显式变量赋值,因为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;//
答案 1 :(得分:1)
试试这个:
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//