The REPEAT statement executes a statement or group of statements until a search condition is true.
.-----------------------------. V | >>-+--------+--REPEAT----SQL-procedure-statement-- ;-+----------> '-label:-' >--UNTIL--search-condition--END REPEAT--+-------+-------------->< '-label-'
A REPEAT statement fetches rows from a table until the not_found condition handler is invoked.
CREATE PROCEDURE REPEAT_STMT (OUT COUNTER INTEGER) LANGUAGE SQL BEGIN DECLARE v_counter INTEGER DEFAULT 0; DECLARE v_firstnme VARCHAR(12); DECLARE v_midinit CHAR(1); DECLARE v_lastname VARCHAR(15); DECLARE at_end SMALLINT DEFAULT 0; DECLARE not_found CONDITION FOR SQLSTATE '02000'; DECLARE c1 CURSOR FOR SELECT firstnme, midinit, lastname FROM employee; DECLARE CONTINUE HANDLER FOR not_found SET at_end = 1; OPEN c1; fetch_loop: REPEAT FETCH c1 INTO v_firstnme, v_midinit, v_lastname; SET v_counter = v_counter + 1; UNTIL at_end > 0 END REPEAT fetch_loop; SET counter = v_counter; CLOSE c1; END