![変更の始まり](KC_ROOT/images/ddita/delta.gif)
-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
![変更の終わり](KC_ROOT/images/ddita/deltaend.gif)