2015-10-29 87 views
0

有人可以告訴我我錯在哪裏嗎?MySQL存儲過程導致錯誤

此過程返回附近

@recuperato = @recuperato - saldofattura; 

我的錯誤錯誤更新變量@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

你能和我們分享確切的錯誤信息嗎?但我想你錯過了@recuperato = @ recuperato-saldofattura開頭的SET關鍵字;線。 – Shadow

+0

嗨,這是錯誤消息:「錯誤1064(42000):您的SQL語法有錯誤;請查看與您的MySQL服務器版本相對應的手冊,以找到正確的語法以在'@ recuperato = @ recuperato-saldofattura; 在第25行刪除F' 「謝謝 – user5502522

+0

然後嘗試在該行的開頭添加關鍵字SET:SET @recuperato = @ recuperato-saldofattura; – Shadow

回答

0

添加SET關鍵字在行的問題開始:

SET @recuperato = @recuperato-saldofattura; 
0

你必須寫關鍵字設置爲值賦給變量「@recuperato」爲按照:

SET @recuperato = @ recuperato-saldofattura;