2017-08-31 6 views
0

Ich bin neu in SQL und ich spielte nur mit gespeicherten Prozeduren für die Praxis. Ich habe diesen SP, der das Produkt der Multiplikation zurückgeben soll. Stattdessen gibt es NULL zurück, ohne einen Fehler zu geben.Warum gibt diese Stored Procedure NULL zurück

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 ; 

Antwort

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; 

können Sie über Code versuchen.

Hier Ich hatte vorgenommene Änderungen an der Linie

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

Auch @ von Eingangsvariablen entfernen.

Definitiv wird es Ihnen helfen.