DB2 : 「SQL0206N "INVOICEDATE" は、使用されているコンテキストでは無効です。SQLSTATE=42703」エラーを解決する方法

DB2 : 「SQL0206N "INVOICEDATE" は、使用されているコンテキストでは無効です。SQLSTATE=42703」エラーを解決する方法

LinuxでDB2に接続し、最も古い請求書を取得しようとしました。以下のクエリを使用するとエラーが表示されます。SQL0206N "INVOICEDATE" is not valid in the context where it is used.SQLSTATE=42703

db2 "select min(INVOICEDATE) from RHA2";

このエラーを解決するにはどうすればよいですか。助けてください。

前もって感謝します。

答え1

$ db2 "? sql206"

SQL0206N "" は、使用されているコンテキストでは無効です。

説明:

このエラーは次の場合に発生する可能性があります。


  • INSERT または UPDATE ステートメントの場合、指定された列は、挿入または更新のオブジェクトとして指定されたテーブルまたはビューの列ではありません。


  • SELECT または DELETE ステートメントの場合、指定された列は、ステートメント内の FROM 句で識別されるテーブルまたはビューのいずれの列でもありません。

  • 代入ステートメントの場合、参照名は列または変数の名前に解決されません。

  • 行型変数内のフィールドを参照する場合、参照名は行型内のどのフィールドの名前にも解決されません。

  • ORDER BY 句の場合、指定された列はサブ選択内の相関列参照ですが、これは許可されていません。

  • パラメータ化されたカーソル コンストラクター内の SELECT ステートメントの場合、"" への参照が列またはスコープ内の変数と一致しません。ローカル変数とルーチン SQL パラメータは、パラメータ化されたカーソルのスコープ内では考慮されません。

  • スタンドアロンの複合 SQL (コンパイル済み) ステートメントの場合:

    • 参照 "" は、スコープ内にある列またはローカル変数の名前に解決されません。

    • SIGNAL ステートメントで指定された条件名 "" が宣言されていません。

    • 行型変数内のフィールドを参照する場合、参照名は行型内のどのフィールドの名前にも解決されません。

  • CREATE TRIGGER、CREATE METHOD、CREATE FUNCTION、または CREATE PROCEDURE ステートメントの場合:

    • 参照 "" は、列、ローカル変数、または遷移変数の名前に解決されません。

    • 参照 "" は、現在のスコープでは使用できないローカル変数の名前に解決されます。

    • SIGNAL ステートメントで指定された条件名 "" が宣言されていません。

    • 行型変数内のフィールドを参照する場合、参照名は行型内のどのフィールドの名前にも解決されません。

  • CREATE TRIGGER ステートメントの場合:

    • OLD または NEW 相関名を使用せずに、対象テーブルの列への参照が行われます。

    • トリガーされたアクションの SET transition-variable ステートメントの割り当ての左側では、新しい遷移変数のみがサポートされている場所に古い遷移変数が指定されています。

  • PREDICATES 句を含む CREATE FUNCTION ステートメントの場合:

    • SQL 関数の RETURN ステートメントは、パラメーターではない変数、または RETURN ステートメントの範囲内にある他の変数を参照しています。

    • FILTER USING 句は、WHEN 句のパラメータ名または式名ではない変数を参照します。

    • インデックス活用ルール内の検索ターゲットが、作成中の関数の一部のパラメータ名と一致しません。

    • インデックス活用ルール内の検索引数が、EXPRESSION AS 句内の式名または作成中の関数のパラメーター名と一致しません。

  • CREATE INDEX EXTENSION ステートメントの場合、RANGE THROUGH 句または FILTER USING 句は、句で使用できるパラメーター名ではない変数を参照しています。

  • パラメータ化されたカーソル変数参照の場合、パラメータ化されたカーソル変数の定義で使用される選択ステートメントで参照されるローカル SQL 変数または SQL パラメータは、
    現在のスコープでは使用できません。

  • 期間参照の場合、指定された期間はステートメントのソース テーブルまたはターゲット テーブル、またはビューのいずれにも存在しません。

ステートメントを処理できません。

ユーザーの応答:

SQL ステートメントで名前が正しく指定されていることを確認します。SELECT ステートメントの場合、必要なすべてのテーブルが FROM 句で指定されていることを確認します。ORDER BY 句のサブ選択の場合、相関列参照がないことを確認します。テーブルに相関名が使用されている場合は、後続の参照でテーブル名ではなく相関名が使用されていることを確認します。

CREATE TRIGGER ステートメントの場合、SET transition-variable ステートメントの割り当ての左側に新しい遷移変数のみが指定されていること、および対象テーブルの列への参照に相関名が指定されていることを確認します。

スタンドアロン複合 SQL ステートメント、CREATE FUNCTION、CREATE PROCEDURE、または CREATE TRIGGER ステートメントの場合、列または変数が現在の複合 SQL ステートメントのスコープ内で使用可能であることを確認します。

db2-fn:sqlquery 関数を使用して XQuery に組み込まれた全選択の場合、全選択内の参照は、全選択のコンテキスト内の列、グローバル変数、または db2-fn:sqlquery 関数の追加引数を使用して新しい SQL コンテキストに渡されるパラメーターのいずれかである必要があります。

SQLコード: -206

SQL状態: 42703

関連情報