SQL プロシージャーの REPEAT ステートメント
REPEAT ステートメントは、REPEAT ループの末尾で条件が真と評価されるまで実行される一連のステートメントを定義します。
ループの反復の完了ごとに、repeat-loop-condition が評価されます。
WHILE ステートメントでは、最初の受け渡しで while-loop-condition が偽の場合はループには入りません。 REPEAT ステートメントは、それに代わる便利なステートメントです。ただし、while-loop 論理を REPEAT ステートメントに書き直せることに注意する必要があります。
以下に、SQL プロシージャーで使用される REPEAT ステートメントの例を示してあります。
CREATE PROCEDURE sum_mn2 (IN p_start INT
,IN p_end INT
,OUT p_sum INT)
SPECIFIC sum_mn2
LANGUAGE SQL
smn2: BEGIN
DECLARE v_temp INTEGER DEFAULT 0;
DECLARE v_current INTEGER;
SET v_current = p_start;
REPEAT
SET v_temp = v_temp + v_current;
SET v_current = v_current + 1;
UNTIL (v_current > p_end)
END REPEAT;
END