2017-08-31 93 views
0

我是SQL新手,我只是在实践中使用存储过程。我有这个应该返回乘法乘积的SP。相反,它会返回NULL,而不会给出错误。为什么这个存储过程返回NULL

DELIMITER $$ 
CREATE DEFINER=`root`@`localhost` PROCEDURE `spMultiply`(IN `n1` INT, IN `n2` INT, OUT `x` INT) 
    BEGIN 

    SET @nn = @n1; 
    SET @mm = @n2; 

    SELECT @[email protected]*@mm; 

END$$ 
DELIMITER ; 

回答

0
drop PROCEDURE `spMultiply`; 
DELIMITER $$ 
CREATE DEFINER=`root`@`localhost` PROCEDURE `spMultiply`(IN `n1` INT, IN `n2` INT, OUT `x` INT) 
    BEGIN 

    SET @nn = n1; 
    SET @mm = n2; 

    set x:[email protected]*@mm; 

END$$ 
DELIMITER ; 
call spMultiply(1,2,@x); 
select @x; 

你可以试试上面的代码。

在线路

SELECT @[email protected]*@mm;set x:[email protected]*@mm;

在这里,我已作出变化也从输入变量除去@

绝对会帮助你。