制限事項:このトピックは、Windows 環境 (ローカル開発) にのみ適用されます。
アプリケーションが CALL 文を実行するときには、DB2 LUW サーバは、文で指定されたパラメータと値を使用してストアド・プロシージャのパラメータ・リストをビルドします。DB2 LUW サーバは、システム・テーブルからパラメータに関する情報を取得します。詳細については、『DB2 LUW でのストアド・プロシージャの定義』の節を参照してください。パラメータは、次のいずれかのタイプで定義されます。
- IN
ストアド・プロシージャに値を渡す、入力専用パラメータ
- OUT
ストアド・プロシージャから呼び出し側プログラムに値を返す、出力専用パラメータ
- INOUT
ストアド・プロシージャに値を渡す、またはストアド・プロシージャから値を返す、入出力パラメータ
ストアド・プロシージャで 1 つ以上の出力専用パラメータを設定できなかった場合、DB2 LUW サーバは、ストアド・プロシージャへのエントリ時に確立された値で、出力パラメータを呼び出し側プログラムに返します。COBOL は、3 つのパラメータ・リスト規則をサポートしています。その他の言語は、その他の規則をサポートします。パラメータ・リスト規則は、CREATE PROCEDURE 文で定義されたパラメータ・スタイルに基づいて選択されます。
パラメータ・スタイル
|
説明
|
SIMPLE
|
SIMPLE (または GENERAL) を使用して、呼び出し側プログラムが、入力パラメータ (IN または INOUT) として NULL 値をストアド・プロシージャに渡さないようにします。ストアド・プロシージャは、CALL 文で渡される各パラメータの変数を宣言する必要があります。
|
SIMPLE WITH NULLS
|
SIMPLE WITH NULLS (または GENERAL WITH NULLS) を使用して、呼び出し側プログラムが、ストアド・プロシージャに渡されるパラメータに NULL 値を使用できるようにします。次の規則が適用されます。
- 次の 2 つの形式のいずれかを使用して、呼び出し側プログラムの CALL 文の各パラメータの後に、インジケータ変数が続くようにする必要があります。
- ホスト変数 :インジケータ変数
または
- ホスト変数 INDICATOR :インジケータ変数
- ストアド・プロシージャは、CALL 文で渡される各パラメータの変数を宣言する必要があります。
- ストアド・プロシージャは、CALL 文で渡される各パラメータのインジケータ変数が含まれる、NULL インジケータ構造体を宣言する必要があります。
- エントリでは、ストアド・プロシージャは入力パラメータに関連付けられたすべてのインジケータ変数を調べて、NULL 値を含むパラメータを特定する必要があります。
- 出口では、ストアド・プロシージャは、出力変数に関連付けられたすべてのインジケータ変数に値を割り当てる必要があります。呼び出し側に対して NULL 値を返す出力変数のインジケータ変数には、負数が割り当てられている必要があります。それ以外の場合は、インジケータ変数にはゼロ (0) の値が割り当てられている必要があります。
|
DB2SQL
|
CALL 文のパラメータに加え、次の引数がストアド・プロシージャに渡されます。
- CALL 文の各入力パラメータに対する NULL インジケータ。
- DB2 に返される SQLSTATE。
- ストアド・プロシージャの修飾名。
- ストアド・プロシージャの特定名。
- DB2 に返される SQL 診断ストリング。
|