EXECUTE
EXECUTE ステートメントには 2 とおりの使い方があります。
•
ユーザー定義のプロシージャまたはシステム ストアド プロシージャを呼び出す場合。
CALL
ステートメントの代わりに EXECUTE ステートメントを使用できます。
•
ストアド プロシージャ内で、文字列または、文字列を返す式を実行する場合。
構文
ストアド プロシージャを呼び出す場合:
EXEC[UTE]
ストアド プロシージャ
[([
プロシージャ パラメーター
[,
プロシージャ パラメーター
]...])]
ストアド プロシージャ
::= ストアド プロシージャの名前
プロシージャ パラメーター
::= ストアド プロシージャが必要とする入力パラメーター
ユーザー定義のストアド プロシージャ内の場合:
EXEC[UTE]
(
文字列
[ +
文字列
]...)
文字列
::= 文字列、文字列変数、または文字列を返す式
備考
ストアド プロシージャ構文の
EXEC[UTE] (文字列...)
は、NCHAR 値のリテラルおよび変数をサポートしていません。文字列の構築に使用される値は、実行前に CHAR 値へ変換されます。
例
次の例では、パラメーターのないプロシージャを実行します。
EXEC NoParms() または CALL NoParms
次の例では、パラメーターのあるプロシージャを実行します。
EXEC Parms(vParm1, vParm2)
EXECUTE CheckMax(N.Class_ID)
============
次のプロシージャは、Billing テーブルから Student_ID を取り出します。
CREATE PROCEDURE tmpProc(IN :vTable CHAR(25)) RETURNS (sID INTEGER) AS
BEGIN
EXEC ('SELECT Student_ID FROM ' + :vtable);
END;
EXECUTE tmpProc('Billing')
関連項目
CALL
CREATE PROCEDURE
システム ストアド プロシージャ