静的および動的 SQL ステートメントのアクセス・パスの相違

パラメーター・マーカーを使用した場合でも、静的および動的照会のアクセス・パスは異なることがあります。

プログラム固有のプログラミングインターフェース情報の開始。 Db2は、パラメーター・マーカーを置換する値が、比較される列と同じ長さと精度を持っていると想定します。 この前提で、 述部が索引可能なステージ 1 か、常に索引不可のステージ 2 かが決まります。

列定義とホスト変数の両方がストリングであれば、 以下のどの条件にでも該当する場合は、述部はステージ 1 となりますが、索引可能ではありません。

  • 列定義は CHAR または VARCHAR、 ホスト変数定義は GRAPHIC または VARGRAPHIC です。
  • 列定義は GRAPHIC または VARGRAPHIC、 ホスト変数定義は CHAR または VARCHAR であり、 列定義の長さはホスト変数定義の長さ未満です。
  • 列定義とホスト変数定義はともに CHAR または VARCHAR、 列定義の長さはホスト変数定義の長さ未満であり、 かつ比較演算子は「=」以外の任意の演算子です。
  • 列定義とホスト変数定義はともに GRAPHIC または VARGRAPHIC、 列定義の長さはホスト変数定義の長さ未満であり、 かつ比較演算子は「=」以外の任意の演算子です。

述部は、以下に該当する条件がある場合はステージ 2 になります。

  • 列定義は、DECIMAL(p,s)で、p>15およびホスト変数定義は、REAL、または、FLOATです。
  • 列定義は CHAR、VARCHAR、GRAPHIC、または VARGRAPHIC、 ホスト変数定義は DATE、TIME、または TIMESTAMP です。

プログラム固有のプログラミングインターフェース情報を終了します。