REPEAT ステートメントは、 検索条件が真になるまでステートメントまたはステートメントのグループを実行します。
構文
.-------------------------------. V | >>-+---------+--REPEAT-------SQL-procedure-statement--;---+-----> '-label:--' >----UNTIL--search-condition---END REPEAT----+--------+-------->< '-label--'
説明
例
REPEAT ステートメントは、not_found 条件ハンドラーが呼び出されるまで、 表から行を取り出します。
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