我创建了3个程序,3 rd 调用另外两个程序:
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
我该如何解决这个问题?
答案 0 :(得分:0)
前两个语句创建STORED PROCEDURE
而不是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)