我已经在MySQL中创建了一个新的存储过程,
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `getEmpById`(IN empId INT,
OUT empSal DOUBLE, out empName varchar(45))
BEGIN
select salary,empname into empSal,empName from employee where empno=empId;
END
但是在执行时
call getEmpById(1,@empSal,@empName);
select @empSal,@empName;
它返回结果,但它仅返回empSal的值,而不返回empName的值,也不会返回其他值的值
我的出场就像
|@empName |@empSal |
--------------------
|null |55500 |
答案 0 :(得分:0)
我自己找到了解决方法,
select salary,empname into empSal,empName from employee
在存储过程中,我将列名empname
映射到empName
,这就是为什么我得到null
值作为输出的原因
在存储过程中,不能与parameter name
一样使用column name
。
将参数empname
更改为ename
后,我得到了想要的正确结果。