パラメータ規則

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

アプリケーションが CALL 文を実行するときには、DB2 LUW サーバは、文で指定されたパラメータと値を使用してストアド・プロシージャのパラメータ・リストをビルドします。DB2 LUW サーバは、システム・テーブルからパラメータに関する情報を取得します。詳細については、『DB2 LUW でのストアド・プロシージャの定義』の節を参照してください。パラメータは、次のいずれかのタイプで定義されます。

ストアド・プロシージャで 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 診断ストリング。