Может ли кто-нибудь сказать мне, где я ошибаюсь?Ошибка в MySQL хранимой процедуре
Эта процедура возвращает ошибку вблизи
@recuperato = @recuperato - saldofattura;
I ошибке обновить переменную @recuperato
?
Спасибо всем
DELIMITER //
DROP PROCEDURE IF EXISTS fatture_lettere_retail//
CREATE PROCEDURE fatture_lettere_retail (idcontratto INT(11))
BEGIN
DECLARE finito INT default 0;
DECLARE idfattura INT default 0;
DECLARE saldofattura DECIMAL(10,2);
DECLARE cur1 CURSOR FOR SELECT idfattura,saldofattura FROM fatture_lettere_isa;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000'
SET finito = 1;
SET @recuperato=(SELECT SUM(valorea)-SUM(valorer) FROM ImportiContratto WHERE idcontratto=idcontratto AND idimporto=1);
ciclo: LOOP
SET finito = 0;
FETCH cur1 INTO idfattura,saldofattura;
IF finito THEN
LEAVE ciclo;
END IF;
IF (@recuperato-saldofattura>=0) THEN
@recuperato = @recuperato-saldofattura;
DELETE FROM fatture_lettere_isa WHERE idfattura=idfattura;
ELSE
UPDATE fatture_lettere_isa SET [email protected];
LEAVE ciclo;
END IF;
END LOOP ciclo;
CLOSE cur1;
END; //
DELIMITER;
Можете ли вы поделиться с нами точным сообщением об ошибке? Но я думаю, что вы пропустили ключевое слово SET с начала @recuperato = @ recuperato-saldofattura; линия. – Shadow
Привет, это сообщение об ошибке: «ERROR 1064 (42000): у вас возникла ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с« @recuperato = @ recuperato-saldofattura; DELETE F 'по строке 25 "спасибо – user5502522
Затем попробуйте добавить ключевое слово SET в начале этой строки: SET @recuperato = @ recuperato-saldofattura; – Shadow