SQL 解説書

LEAVE ステートメント

LEAVE ステートメントは、プログラム制御をループまたは複合ステートメントの外側に移動させます。

構文

>>-LEAVE--label------------------------------------------------><
 

説明

label
終了する複合、FOR、LOOP、REPEAT、または WHILE ステートメントのラベルを指定します。

規則

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


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]