2017-08-31 40 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;

在這裏,我已作出變化也從輸入變量除去@

絕對會幫助你。