許多開發人員遇到令人沮喪的「錯誤1329:無資料- 提取、選擇或處理零行”執行預存程序。然而,即使過程正常運行,此錯誤也經常發生,這就提出瞭如何抑制此不必要的消息的問題。
一個潛在的解決方案在於儲存過程本身。預設情況下,預存程序應傳回結果集。但是,如果程序執行不產生任何資料的操作(例如資料操作或記錄更新),則會觸發錯誤訊息。
要解決此問題,我們可以修改預存程序以明確指示:它不傳回任何資料。這可以透過將以下行新增至程序的開頭來實現:
READS SQL DATA
此行通知資料庫該程序將僅從表中讀取,而不會返回任何行。
另一種方法涉及處理過程中的 NOT FOUND 異常。當使用遊標從表中取得行時,可能會遇到沒有更多行可供取得的情況。這將導致遊標引發 NOT FOUND 異常。透過捕獲此異常並設置標誌,我們可以避免錯誤訊息。
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
透過新增這一行,我們指示當遊標遇到 NOT FOUND 異常時,資料庫將完成標誌設為 1。然後,可以使用此標誌退出遊標循環並完成該過程,而不會觸發錯誤訊息。
最後,另一個解決方法是執行一個從表中讀取並成功的附加虛擬查詢。這將清除 MySQL 5.5.13 上的警告。
SELECT name INTO l_name FROM customer_tbl LIMIT 1;
透過遵循這些方法,開發人員可以抑制「Error 1329」訊息不會傳回任何資料的儲存過程,確保執行更順暢,不會出現不必要的錯誤提示。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3