SQL プロシージャーの RETURN ステートメント

RETURN ステートメントは、SQL プロシージャーを無条件かつ即時に終了するときに使用されます。終了するために、ストアード・プロシージャーの呼び出し元に制御のフローを戻します。

RETURN ステートメントを実行すると、必ず整数値が戻される必要があります。 戻り値を指定しない場合のデフォルト値は 0 です。 通常、この値は、プロシージャーの実行が正常完了または失敗のどちらであったかを示すのに使用されます。 値は、リテラルまたは変数、あるいは、整数値に評価される式のいずれかにすることができます。

ストアード・プロシージャー内で 1 つ以上の RETURN ステートメントを使用することができます。 RETURN ステートメントは、SQL プロシージャー本体内の宣言ブロックの後であればどこで使用してもかまいません。

それに代えてパラメーターを使用し、複数の出力値を戻すこともできます。 パラメーター値は、実行する RETURN ステートメントより前に設定する必要があります。

RETURN ステートメントを使用した SQL プロシージャーの例を以下に示します。

  CREATE PROCEDURE return_test (IN p_empno CHAR(6),
                                IN p_emplastname VARCHAR(15) )
  LANGUAGE SQL
  SPECIFIC return_test
  BEGIN

    DECLARE v_lastname VARCHAR (15);

    SELECT lastname INTO v_lastname
      FROM employee
  	 WHERE empno = p_empno;

    IF v_lastname = p_emplastname THEN
      RETURN 1;
    ELSE
      RETURN -1;
    END IF;

  END rt

この例では、employee 表に保管されている値にパラメーター p_emplastname が一致した場合、プロシージャーから 1 が戻されます。 一致しなかった場合、-1 が戻されます。