CALL ステートメント

CALL ステートメントは、ストアード・プロシージャーを呼び出します。

構文

構文図を読むビジュアルシンタックスダイアグラムをスキップするラベル:CALL procedure-nameargument-list

argument-list:

構文図を読むビジュアルシンタックスダイアグラムをスキップする(,SQL-variable-nameSQL-parameter-nameNULL)

説明

label
変更の開始CALL ステートメントのラベルを指定します。 ラベル名は、ルーチン名や拡張トリガー名と同じにしたり、同じ有効範囲内の別のラベルと同じにすることはできません。 詳細については、 SQL PLのSQLラベルへの参照を参照してください。変更の終わり
プロシージャー名
呼び出すストアード・プロシージャーを指定します。 このプロシージャー名は、 現行サーバーに存在するストアード・プロシージャーを示すものでなければなりません。
引数リスト
ストアード・プロシージャーにパラメーターとして渡す値のリストを指定します。 n 番目の値が、プロシージャー内の n 番目のパラメーターに対応します。 パラメーターの数は、ストアード・プロシージャー用に定義されたパラメーターの数と 同じでなければなりません。 詳細は CALLステートメントを参照してください。

SQL ルーチンの呼び出し規則にしたがって、制御権がその ストアード・プロシージャーに渡されます。 ストアード・プロシージャーの実行が完了すると、 ストアード・プロシージャーの各パラメーターの値は、OUT または INOUT として 定義された、対応する CALL ステートメントのパラメーターに割り当てられます。

SQL変数名
ストアード・プロシージャーの引数として SQL 変数を指定します。 SQL 変数への参照に関する説明は、「SQL PL における SQL パラメータと変数への参照」 を参照してください。
SQLパラメータ名
ストアード・プロシージャーの引数として SQL パラメーターを指定します。 SQL パラメータへの参照に関する説明は、「SQL PL における SQL パラメータと変数への参照」 を参照してください。
このパラメーターは、指定された expression の結果であり、 ストアード・プロシージャーが呼び出される前に評価されます。 expression が 単一の SQL-parameter-name または SQL-variable-name の場合は、 このプロシージャーの対応するパラメーターを IN、INOUT、または OUT として定義 することができます。 それ以外の場合は、プロシージャーの対応するパラメーターは、IN として定義してお く必要があります。 expression の結果が NULL 値になる可能性がある場合は、 プロシージャーの記述は、NULL パラメーターが許されるものにするか、または ストアード・プロシージャーの対応するパラメーターを OUT として定義するか、 のいずれかにする必要があります。

対応するパラメーターがそのプロシージャーの CREATE PROCEDURE ステートメント でどのように定義されたかに応じて、以下の追加規則が適用されます。

  • IN expression には、複数の SQL パラメーターまたは変数に対する参照を含めることができます。 の式に記載されている規則に加えて、 式には列名、集計関数、または集計関数に基づくユーザー定義関数を含めることはできません。
  • INOUT または OUT expression が許されるのは、単一の SQL パラメーターまた は SQL 変数の場合だけです。
ヌル
パラメーターは NULL 値です。 そのプロシージャーに関する対応パラメーターは、IN として定義されている必要があり、さらにプロシージャーの記述は NULL パラメーターに対応できなければなりません。

SQL CALL文の詳細については、CALL文を参照してください。

ストアード・プロシージャー proc1 を呼び出して、 パラメーターとして SQL 変数を渡します。
CALL proc1(v_empno, v_salary)