存储过程字符串参数对于某些参数返回null

fivyi3re  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(366)

我在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   |
gg58donl

gg58donl1#

我自己找到了解决办法,

select salary,empname into  empSal,empName from employee

在我的存储过程中,我Map列名 empnameempName 所以我才会 null 值作为输出
在存储过程中,不能使用 parameter namecolumn name .
改变参数后 empnameename 我得到了我想要的正确结果。

相关问题