SQL 文 CALL の実行

制限事項:このトピックは、Windows 環境 (ローカル開発) にのみ適用されます。

CALL 文を使用して、アプリケーションで一連の SQL 文をそれぞれ実行します。

例 1

制限事項:このトピックは、Windows 環境 (ローカル開発) にのみ適用されます。

『アプリケーションでのストアド プロシージャの処理方法』で説明されているようにストアド プロシージャを呼び出すために、アプリケーションで次の文が使用される場合があります。

EXEC SQL
CALL GETEMPSVR (:V1, :V2)
END-EXEC

CALL 文でホスト変数を使用する場合は、まずそのホスト変数宣言する必要があります。

例 2

制限事項:このトピックは、Windows 環境 (ローカル開発) にのみ適用されます。

上記の例は、入力パラメーターに NULL 値を使用できないことが前提となっています。NULL 値を許可するには、次のように文をコーディングします。

EXEC SQL
CALL GETEMPSVR (:V1 :IV1, :V2 :IV2)
END-EXEC

ここで、:IV1 および :IV2 はパラメーターのインジケーター変数です。

例 3

制限事項:このトピックは、Windows 環境 (ローカル開発) にのみ適用されます。

整数または文字列定数や NULL 値をストアド プロシージャに渡すには、次のように文をコーディングします。

EXEC SQL
CALL GETEMPSVR (2, NULL)
END-EXEC

例 4

制限事項:このトピックは、Windows 環境 (ローカル開発) にのみ適用されます。

ストアド プロシージャの名前にホスト変数を使用するには、次のように文をコーディングします。

EXEC SQL
CALL :PROCNAME (:V1, :V2)
END-EXEC

例 5

制限事項:このトピックは、Windows 環境 (ローカル開発) にのみ適用されます。

ストアド プロシージャ名を GETEMPSVR と仮定します。ホスト変数 PROCNAME は、値 GETEMPSVR が含まれた、長さが 254 文字以内の文字変数です。ストアド プロシージャ名がわからなくても、パラメーター リストの規則がわかっている場合には、この方法を使用してください。

個々のホスト変数としてではなく、1 つの構造体としてパラメーターを渡すには、次のように文をコーディングします。

EXEC SQL
CALL GETEMPSVR USING DESCRIPTOR :ADDVALS
END-EXEC

ここで、ADDVALS は SQLDA の名前です。

例 6

制限事項:このトピックは、Windows 環境 (ローカル開発) にのみ適用されます。

SQLDA を使用するストアド プロシージャにホスト変数名を使用するには、次のように文をコーディングします。

EXEC SQL
CALL :PROCNAME USING DESCRIPTOR :ADDVALS
END-EXEC

この形式では、同一の CALL 文を使用して、さまざまなパラメーター リストを持つ複数の異なるストアド プロシージャを呼び出すことができるため、特に柔軟性があります。

クライアント プログラムは、SQL CALL 文を作成する前に、ホスト変数 PROCNAME にストアド プロシージャ名を割り当てて、SQLDA ADDVALS にパラメーター情報をロードする必要があります。

上記の各 CALL 文の例は、SQLDA を使用しています。SQLDA を明示的に指定しない場合は、プリコンパイラは、パラメーター リスト内の変数に基づいて SQLDA を生成します。

CALL 文は、アプリケーション プログラムからのみ実行できます。CALL 文を動的に使用することはできません。