Почему моя функция не возвращает значение, используя другую функцию в качестве входных данных? - PullRequest
0 голосов
/ 11 января 2019

Я написал две функции. Первый использовал запрос на выборку и возвращает значение. В то время как моя вторая функция использует возвращенное значение из первой функции в качестве входных данных и после определенной операции должна возвращать свое собственное значение. Я получаю сообщение «ОК», но ничего не получаю

DELIMITER //
DROP FUNCTION IF EXISTS walkerCubicAreaWeight;
CREATE FUNCTION walkerCubicAreaWeight (WType1 CHAR(5))
RETURNS DECIMAL(5,2)

BEGIN 
DECLARE Cubic_Area_Weight  FLOAT;
SELECT Weight INTO @A FROM imperial_walker_type WHERE WType = WType1;
SELECT Height INTO @B FROM imperial_walker_type WHERE WType = WType1;
SELECT Length INTO @C FROM imperial_walker_type WHERE WType = WType1;
SELECT Width INTO @D FROM imperial_walker_type WHERE WType = WType1;

SET Cubic_Area_Weight = @A/(@B*@C*@D) ;
RETURN Cubic_Area_Weight;
END //

DELIMITER ;

Функция 2

DELIMITER //
DROP FUNCTION IF EXISTS walkerFuelCapacity;
CREATE FUNCTION walkerFuelCapacity (WType1 varCHAR(20))
RETURNS DECIMAL(10,2)

BEGIN 
DECLARE Walker_Fuel_Capacity FLOAT;
SELECT OpRange INTO @E FROM imperial_walker_type WHERE WType = WType1;
SET Walker_Fuel_Capacity = walkerCubicAreaWeight(WType1) *@E ;
RETURN Walker_Fuel_Capacity;
END  //

DELIMITER ;

Моя первая функция возвращает значение 0,40. Во второй функции она должна использовать 0,40 и умножить ее на oprange (в данном случае это 720) и должна вернуть 288. Однако я получаю сообщение ОК, а значение

отсутствует.

1 Ответ

0 голосов
/ 12 января 2019

Мне удалось получить ответ на мой вопрос выше.

Вышеуказанные две функции были частью хранимой процедуры с использованием курсора. Я пытался запустить эти функции в отдельном запросе (т.е. вне хранимой процедуры), и, следовательно, вторая функция не возвращала никаких результатов, однако в хранимой процедуре я получил желаемые результаты. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...