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 文を動的に使用することはできません。