パラメーター規則

制限事項:このトピックは、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 診断ストリング。