not_found_creadit = 1
を設定するハンドラー 、FETCH
のときに発生します 行を返しませんが、 beforeの値をチェックしています FETCH
の実行 、したがって、FETCH
の場合、ループの本体は1回余分に実行されます。 失敗すると、ループループは nextの開始時に終了します 反復。
コードを再配置して、直後の変数の値を確認します。 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
に修正することを検討してください。