2015-10-29 2 views
0

Может ли кто-нибудь сказать мне, где я ошибаюсь?Ошибка в 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; 
+1

Можете ли вы поделиться с нами точным сообщением об ошибке? Но я думаю, что вы пропустили ключевое слово SET с начала @recuperato = @ recuperato-saldofattura; линия. – Shadow

+0

Привет, это сообщение об ошибке: «ERROR 1064 (42000): у вас возникла ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с« @recuperato = @ recuperato-saldofattura; DELETE F 'по строке 25 "спасибо – user5502522

+0

Затем попробуйте добавить ключевое слово SET в начале этой строки: SET @recuperato = @ recuperato-saldofattura; – Shadow

ответ

0

Добавить набор ключевых слов в начале строки в вопрос:

SET @recuperato = @recuperato-saldofattura; 
0

Вы должны написать набор ключевых слов, чтобы присвоить значение переменной «@recuperato», как следовать:

SET @recuperato = @ recuperato-saldofattura;

Смежные вопросы