हैंडलर, जो सेट करता है not_found_creadit = 1
, निकाल दिया जाता है जब FETCH
कोई पंक्ति नहीं देता है, लेकिन आप पहले . के मान की जांच कर रहे हैं निष्पादित FETCH
, इसलिए आपके लूप का मुख्य भाग एक अतिरिक्त समय निष्पादित करेगा जब FETCH
विफल हो जाता है, फिर लूप लूप अगले . के प्रारंभ में बाहर निकल जाता है पुनरावृति।
बाद . के तुरंत बाद अपने वेरिएबल का मान जांचने के लिए अपने कोड को पुनर्व्यवस्थित करें FETCH
:
credit_loop : LOOP
FETCH cur_credit INTO vc_customer, dec_amount, vc_status, vc_user_type, vc_emp, vc_note;
IF not_found_creadit THEN
CLOSE cur_credit;
LEAVE credit_loop;
END IF;
SELECT vc_customer, dec_amount, vc_status, vc_user_type, vc_emp, vc_note;
......
......
END LOOP;
साथ ही, अपने वैरिएबल की स्पेलिंग को not_found_credit
. में सही करने पर विचार करें