次のmysqlプロシージャを作成しようとしていますが、最後の2時間スタックしていて、何が問題なのかわかりません。
delimiter $$
drop procedure if exists pos_finder;
create procedure pos_finder()
begin
declare below, normal, normal_h, svalue, eid, above int default 0;
declare bcounter, ncounter, acounter int default 0;
declare done int default 0;
declare userData cursor for select e.id, s.value, t.below_normal_h,
t.Normal_b, t.Normal_h, t.above_normal_l from k_employee as e, k_trackers_data as s, k_trackers_sub as t where e.id = 3 and s.user_id = e.id and t.id = s.sub_tracker_id;
declare continue handler for not found set done = 1;
open userData;
fetch userData into eid, svalue, below, normal, normal_h, above;
if svalue < below then
set bcounter = bcounter + 1;
else if svalue > normal then
set ncounter = ncounter + 1;
else if svalue > above then
set acounter = acounter + 1;
end if;
close userData;
end$$
Mysqlは言う
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at
line 19
これはuserData行を閉じます。あちこちで改行をシフトしましたが、常にこの行でのみエラーが発生します
誰かが私が間違っているところを教えてもらえますか?