OUT参数需要INPUT



我正在MYSQL工作台上学习SQL课程。在课程中,我做了一个练习,其中我必须取一个In参数值,并保存为OUT参数值以供进一步使用。

我提出了这个问题:-

DROP PROCEDURE IF EXISTS avg_employee_sal_out;
DELIMITER $$
CREATE PROCEDURE  avg_employee_sal_out( IN p_emp_no INT, OUT p_avg_sal DECIMAL(10, 2))
BEGIN
SELECT  
AVG(s.salary) INTO p_avg_sal
FROM
employees e
JOIN 
salaries s
ON  e.emp_no = s.emp_no
WHERE
e.emp_no = p_emp_no;
END $$
DELIMITER ;

这是正确的答案,但当我运行代码时,OUT参数值"p_avg_sal"要求输入。

[从用户界面运行程序时的屏幕截图]1

如果我在接口中运行存储过程,如果我将out值留空,这是可以的,但当我调用该过程时,我显示了一个错误。

[当我通过命令运行上述过程时的屏幕截图]2

将OUT参数留空不起作用,它显示了另一个错误

[这是错误屏幕截图]3

在课程中,当讲师通过用户界面运行相同的查询时,它没有要求输入OUT值。

(抱歉,无法提供屏幕截图,因为讲座是一段视频,其屏幕截图完全是黑色的,但如果您移除下部输入插槽,则与[1]相同。)

过程的参数数量需要匹配,但这些参数不一定需要有值:

CALL employees.avg_employee_sal_out(11203, NULL)

OK完成了。。。至少一半。

由于工作台中的一个错误,它要求输入OUT参数。当我改变";IN";以及";OUT";到原来的";在";以及";输出";。

分隔符$$CREATE PROCEDURE avg_employe_sal_out(在p_emp_no INT中,在p_avg_sal DECIMAL(10,2)中)开始

SELECT  
AVG(s.salary) INTO p_avg_sal
FROM
employees e
JOIN 
salaries s
ON  e.emp_no = s.emp_no
WHERE
e.emp_no = p_emp_no;

完$$分隔符;

通过在用户界面上运行过程,它可以正常工作,但要调用它,必须使用变量。

在改变";IN";以及";OUT";至";在";以及";输出";。

要通过命令调用它,有人告诉我要使用这样的变量:-以下是命令。

这个错误在4年前仍然存在于工作台中。

最新更新