LOOP ステートメントは、ステートメント、またはステートメントのグループの実行を繰り返します。
構文
.-------------------------------. V | >>-+---------+--LOOP-------SQL-procedure-statement--;---+-------> '-label:--' >----END LOOP----+--------+------------------------------------>< '-label--'
説明
例
以下のプロシージャーでは、LOOP ステートメントを使用して、 employee 表から値を取り出します。 ループが繰り返されるたびに、OUT パラメーター counter が増加し、 v_midinit が検査されて、値が単一スペース (' ') でないことを確認します。 v_midinit が単一スペースの場合、 LEAVE ステートメントは制御のフローをループの外側に渡します。
CREATE PROCEDURE LOOP_UNTIL_SPACE(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 c1 CURSOR FOR SELECT firstnme, midinit, lastname FROM employee; DECLARE CONTINUE HANDLER FOR NOT FOUND SET counter = -1; OPEN c1; fetch_loop: LOOP FETCH c1 INTO v_firstnme, v_midinit, v_lastname; IF v_midinit = ' ' THEN LEAVE fetch_loop; END IF; SET v_counter = v_counter + 1; END LOOP fetch_loop; SET counter = v_counter; CLOSE c1; END