Различные причины для этого .. скажем, например. если мы объявляем любую переменную, то она должна быть перед любыми другими типами операторов. или нам нужно поставить блок BEGIN до этого.
DECLARE _RoomID INTEGER ;
SET _dtTodayTmp=NOW();
SET _dtToday=DATE_FORMAT(_dtTodayTmp,"%m/%d/%y");
SET _tmNow=DATE_FORMAT(_dtTodayTmp,"%h:%i:%s");
DECLARE tree_cursor1 CURSOR
FOR SELECT roomid FROM reservationDet rd WHERE rd.status=3 AND rd.compcode=pCompCode;
дает ошибку, поэтому нам нужно сделать это
DECLARE _RoomID INTEGER ;
SET _dtTodayTmp=NOW();
SET _dtToday=DATE_FORMAT(_dtTodayTmp,"%m/%d/%y");
SET _tmNow=DATE_FORMAT(_dtTodayTmp,"%h:%i:%s");
**BEGIN**
DECLARE tree_cursor1 CURSOR
FOR SELECT roomid FROM reservationDet WHERE STATUS = 3 AND compcode = pCompCode ;