1

我创建了 3 个程序,第 3 个调用了另外两个:

pi 函数

DELIMITER $$
DROP PROCEDURE IF EXISTS pi$$
CREATE PROCEDURE pi()
BEGIN
DECLARE pi FLOAT;
SET pi = 3.14;
SELECT pi;
END$$

幂函数

DELIMITER $$
DROP PROCEDURE IF EXISTS pot$$
CREATE PROCEDURE pot(input_number INT)
BEGIN
DECLARE pot FLOAT; 
SET pot= input_number;
SELECT POWER (pot,2);
END$$

面积函数

DELIMITER $$

DROP PROCEDURE IF EXISTS areac$$
CREATE PROCEDURE areac(input_number INT)
BEGIN
DECLARE area FLOAT;
SET area = input_number;
SELECT pi()*pot(area,2);
END$$

当我运行时CALL areac(1)$$,出现此错误:

ERROR 1305 (42000): FUNCTION aula3.pot does not exist

我怎样才能解决这个问题?

4

1 回答 1

0

前两个语句 createSTORED PROCEDURE和 not FUNCTION。这是创建函数的语法。

为了PI()

DELIMITER $$
CREATE FUNCTION pi()
RETURNS FLOAT
BEGIN
    RETURN 3.14;
END $$
DELIMITER ;

为了POT()

DELIMITER $$
CREATE FUNCTION pot(input_number INT)
RETURNS FLOAT
BEGIN
    RETURN POWER(input_number, 2);
END $$
DELIMITER ;

你现在可以执行这个语句:CALL areac(1)

于 2013-05-05T05:36:31.933 回答