id="repeatstmt">REPEAT statement
The REPEAT statement executes a statement or group of statements until a search condition is true.
Syntax
.-----------------------------. V | >>-+--------+--REPEAT----SQL-procedure-statement-- ;-+----------> '-label:-' >--UNTIL--search-condition--END REPEAT--+-------+-------------->< '-label-'
Description
- label
- Specifies the label for the REPEAT statement. If the ending label is specified, it must be the same as the beginning label. The label name cannot be the same as the routine name or another label within the same scope. For more information, see Labels.
- SQL-procedure-statement
- Specifies an SQL statement to be executed in the REPEAT loop.
- search-condition
- The search-condition is evaluated after each execution of the REPEAT loop. If the condition is true, the REPEAT loop will exit. If the condition is unknown or false, the looping continues.
Example
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
[ Top of Page | Previous Page | Next Page | Contents |
Index ]