我是SQL的新手,我只是在练习存储过程。我有这个SP,它应该返回乘法的乘积。而是返回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 @x=@nn*@mm;

END$$
DELIMITER ;

最佳答案

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:=@nn*@mm;

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


您可以尝试上面的代码。

在这里,我在线进行了更改

SELECT @x=@nn*@mm;set x:=@nn*@mm;

同时从输入变量中删除@

肯定会为您提供帮助。

07-28 01:20
查看更多