我在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
在mysql工作台中,表结构是
但在执行的时候
call getEmpById(1,@empSal,@empName);
select @empSal,@empName;
它返回结果,但它只返回empsal的值,不返回empname,也不返回其他值
我的想法是
|@empName |@empSal |
--------------------
|null |55500 |
1条答案
按热度按时间gg58donl1#
我自己找到了解决办法,
在我的存储过程中,我Map列名
empname
至empName
所以我才会null
值作为输出在存储过程中,不能使用
parameter name
同column name
.改变参数后
empname
至ename
我得到了我想要的正确结果。