Handler, yang menetapkan not_found_creadit = 1
, diaktifkan ketika FETCH
tidak mengembalikan baris, tetapi Anda memeriksa nilainya sebelum menjalankan FETCH
, jadi bagian utama dari loop Anda akan dieksekusi satu kali tambahan saat FETCH
gagal, maka loop loop keluar di awal berikutnya iterasi.
Atur ulang kode Anda untuk memeriksa nilai variabel Anda segera setelah 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;
Juga, pertimbangkan untuk mengoreksi ejaan variabel Anda menjadi not_found_credit