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

あなたは、コードの上に試すことができます。ここで

私はまた、入力変数から@を削除set x:[email protected]*@mm;

にライン

SELECT @[email protected]*@mm;での変更をしていました。

間違いなくそれが役に立ちます。

関連する問題