LEAVE ステートメントは、プログラム制御をループまたは複合ステートメントの外側に移動させます。
構文
>>-LEAVE--label------------------------------------------------><
説明
規則
LEAVE ステートメントが複合ステートメントの外側に制御を移動すると、 その複合ステートメント内のすべてのオープン・カーソル (結果セットを戻すのに使用されているカーソルを除く) がクローズされます。
例
以下の例には、カーソル c1 のデータを取り出すループが含まれています。 SQL 変数 at_end の値がゼロでなければ、 LEAVE ステートメントは制御をループの外側に移動させます。
CREATE PROCEDURE LEAVE_LOOP(OUT counter INTEGER) LANGUAGE SQL BEGIN DECLARE v_counter INTEGER; 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; SET v_counter = 0; OPEN c1; fetch_loop: LOOP FETCH c1 INTO v_firstnme, v_midinit, v_lastname; IF at_end <> 0 THEN LEAVE fetch_loop; END IF; SET v_counter = v_counter + 1; END LOOP fetch_loop; SET counter = v_counter; CLOSE c1; END