変更の始まり

-312   VARIABLE variable-name IS NOT DEFINED OR NOT USABLE

説明

変数が SQL ステートメント内で参照されていますが、この変数が定義されていないか、使用不可となっています。

variable-name
ステートメント内で参照されている変数の名前。

以下のリストは、結果がこの SQLCODE になる条件の例を示しています。

  • 変数が宣言されていません。
  • 変数の属性が SQL ステートメントの使用法と矛盾しています。
  • 動的 SQL ステートメントでホスト変数が指定されました。 ホスト変数は、動的 SQL ステートメントでは無効です。
  • 変数が、サポートされないコンテキストで参照されたホスト変数配列です。ホスト変数配列は、複数行をフェッチする FETCH ステートメント、複数行を挿入する INSERT ステートメント、または複数行の MERGE ステートメントなど、特定のコンテキスト内でのみ参照できます。
  • その変数が CREATE TRIGGER ステートメントで 起動されている SQL ステートメントの 1 つに使用されている。トリガー本体では、OLD 遷移変数を変更できません。
  • SQL プロシージャー、SQL 関数、またはトリガーの本体で変数名が使用されていますが、変数が SQL 変数またはパラメーターとして宣言されていません。SQL 変数の有効範囲は、宣言が含まれたコンパウンド・ステートメントであり、そのコンパウンド・ステートメントにネストされたコンパウンド・ステートメントが含まれています。
  • その変数が索引定義の key-expression の 1 つで使用されました。
  • 配列変数が、サポートされていないコンテキストで使用されています。グローバル変数を除き、配列変数は CREATE VIEW ステートメントでは許可されません。
  • ホスト変数が、属性 BINARY、FIXED、および UNSIGNED と一緒に PL/I で宣言されています。

システムの処置

このステートメントを処理することはできません。

プログラマーの応答

次のいずれかの解決策に従って、要求を再試行してください。

  • プログラムまたは SQL ルーチンに、その変数の宣言が含まれていることを確認してください。SQL ステートメント内の変数名のスペルが正しいことを確認してください。
  • 変数の属性がステートメントでの用法に準拠していることを確認してください。
  • 動的 SQL ステートメントでは、ホスト変数ではなくパラメーター・マーカーを使用してください。
  • 変数がトリガーで変更されるときには、NEW 遷移変数を指定してください。
  • SQL ルーチンでは、SQL 変数またはパラメーターとして変数を宣言してください。
  • 索引の定義を調べて、指定されているホスト変数を除去してください。
  • グローバル変数以外の配列変数をステートメントから除去してください。
  • BINARY FIXED UNSIGNED 変数は、PL/I におけるホスト変数として使用できません。代わりに、必要な値の範囲を表すために十分な精度を持つ BINARY FIXED SIGNED 変数を使用してください。

SQLSTATE

42618

変更の終わり