Ich habe eine gespeicherte Prozedur, die für eine Funktion namens brauchen werden, aber immer, dass ich versuche, ich habe folgende Fehlermeldung:Mysql Stored Function Call Stored Procedure
Dynamic SQL is not allowed in stored function or trigger
Meine Funktion:
DROP FUNCTION IF EXISTS `clusbe`.`getLongitude`;
CREATE DEFINER=`root`@`localhost` FUNCTION `getLongitude`(`id` INT, `latitude` DOUBLE) RETURNS double
BEGIN
DECLARE retorno DOUBLE;
IF (latitude <> '') THEN
set retorno = latitude;
ELSE
CALL proc_getLongitude(1, 0);
END IF;
RETURN retorno;
END;
Mein Stored Procedure:
DROP PROCEDURE IF EXISTS clusbe.proc_getLongitude;
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_getLongitude`(`id` INT, `longitude` DOUBLE)
BEGIN
DECLARE retorno DOUBLE;
IF (longitude <> '' AND longitude <> null) THEN
set retorno = latitude;
ELSE
set @sql = CONCAT("SELECT longitude FROM endereco as e, usuario as u WHERE e.id = u.endereco AND u.id = ", id);
PREPARE stmt FROM @sql;
EXECUTE stmt ;
DEALLOCATE PREPARE stmt;
END IF;
END;
Eine Vorstellung von der es wie lösen?