2011-08-10 36 views
0

ERROR -MySQL的光標執行


錯誤

SQL query: 

call cursorproc(
@p_out 
); 

MySQL表示:文檔

1329 - 無數據 - 零行提取,選擇或處理


執行後 - 稱爲存儲程序

call cursorproc (@p_out); 
select @p_out as temp; 

下面的代碼執行成功 - 存儲過程

create procedure cursorproc(OUT p_out DECIMAL(10,2)) 
begin 

    declare l_salary, l_total DECIMAL(10,2); 

    declare cur_1 cursor for select line_distance from elements; 

    open cur_1; 

    set l_total = 0; 

    loop 

     fetch cur_1 into l_salary; 


     set l_total = l_total + l_salary; 

    end loop; 

    close cur_1; 

    set p_out = l_total; 

end; 

的任何解決方案,這一點,我們缺少究竟在何處?幫助這將不勝感激。

回答

1

您應該在讀數據時檢查數據集的結束。 看看這裏的例子 - cursors

另外,我建議你避免打開遊標 -

SELECT SUM(line_distance) INTO @var FROM elements; 
SELECT @var;