我正在尝试创建一个计算圆柱体横向区域的函数。
DELIMITER $$
DROP PROCEDURE IF EXISTS arealateral$$
CREATE PROCEDURE arealateral(input_number,input_number)
BEGIN
DECLARE raio DECIMAL(10,5);
DECLARE alt DECIMAL (10,5);
SET raio = input_number;
SET alt = input_number;
SELECT 2*pi()*raio*alt;
END$$
DELIMITER;
当我跑步时
CALL arealateral(1,1)$$
出现错误
ERROR 1318 (42000): Incorrect number of arguments for PROCEDURE aula3.arealateral; expected 0, got 2
答案 0 :(得分:2)
更新:将其更改为
DROP PROCEDURE IF EXISTS arealateral;
CREATE PROCEDURE arealateral(in raio DECIMAL(10,5), in alt DECIMAL(10,5))
SELECT 2*pi()*raio*alt;
<强> SQLFiddle 强>
UPDATE2 :根据您在评论中发布的后续问题,您应该使用functions
CREATE FUNCTION arealateral(raio DECIMAL(10,5), alt DECIMAL(10,5))
RETURNS DECIMAL(10,5) DETERMINISTIC
RETURN 2*pi()*raio*alt;
CREATE FUNCTION areatotal(raio DECIMAL(10,5), alt DECIMAL (10,5))
RETURNS DECIMAL(10,5) DETERMINISTIC
RETURN 2*areac(raio) + arealateral(raio,alt);
然后你可以像任何其他功能一样调用它们
SELECT areatotal(1,1);
SELECT arealateral(1,1);
不要忘记创建areac
功能。
<强> SQLFiddle 强>
答案 1 :(得分:0)
你应该申报proc。参数类型为IN,OUT等,变量类型为VARCHAR(10)。 例如,
CREATE PROCEDURE arealateral(IN input_number DECIMAL(10,2),IN input_number2 DECIMAL(10,2))