id="repeatstmt">REPEAT statement

The REPEAT statement executes a statement or group of statements until a search condition is true.

 

Syntax


Click to skip syntax diagram


Read syntax diagram

Skip visual syntax diagram .-----------------------------. 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 ]