Obslužná rutina, která nastavuje not_found_creadit = 1
, se spustí při FETCH
nevrací žádné řádky, ale kontrolujete jeho hodnotu před spuštění FETCH
, takže hlavní tělo vaší smyčky se při FETCH
provede ještě jednou selže, smyčka smyčky se ukončí na začátku dalšího iterace.
Přeuspořádejte kód tak, aby okamžitě po zkontroloval hodnotu proměnné 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;
Zvažte také opravu pravopisu vaší proměnné na not_found_credit