SQL 解説書

GOTO ステートメント

GOTO ステートメントは、SQL ルーチン内のユーザー定義ラベルに分岐させます。

構文

>>-GOTO--label-------------------------------------------------><
 

説明

label
処理を続行するラベル付きステートメントを指定します。 このラベル付きステートメントと GOTO ステートメントの効力範囲は同じでなければなりません。

label が、GOTO ステートメントが到達できる効力範囲内で定義されていない場合、 エラーが戻されます (SQLSTATE 42736)。

規則

以下の複合ステートメントでは、 パラメーター rating および v_empno がプロシージャーに渡されます。 そして、日付期間として出力パラメーター return_parm が戻されます。 従業員のその会社での就労期間が 6 か月未満の場合、 GOTO ステートメントは制御をプロシージャーの最後に移動させ、 new_salary は未変更のままになります。

     CREATE PROCEDURE adjust_salary
        (IN v_empno CHAR(6), 
         IN rating INTEGER)
         OUT return_parm DECIMAL (8,2))
        MODIFIES SQL DATA
        LANGUAGE SQL
        BEGIN
           DECLARE new_salary DECIMAL (9,2)
           DECLARE service DECIMAL (8,2)
             SELECT SALARY, CURRENT_DATE - HIREDATE
               INTO new_salary, service
               FROM EMPLOYEE
               WHERE EMPNO = v_empno
             IF service < 600
               THEN GOTO EXIT
             END IF
           IF rating = 1
               THEN SET new_salary = new_salary + (new_salary * .10)
             ELSE IF rating = 2
               THEN SET new_salary = new_salary + (new_salary * .05)
             END IF
             UPDATE EMPLOYEE
               SET SALARY = new_salary
               WHERE EMPNO = v_empno
             EXIT: SET return_parm = service
          END


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