UNRESOLVED_COLUMN エラー クラス

SQLSTATE: 42703

名前 <objectName> を持つ列、変数、またはルーチン パラメーターを解決できません。

このエラー クラスには、次の派生エラー クラスがあります。

WITHOUT_SUGGESTION

パラメーター

  • objectName: 解決できない列またはパラメーターの名前。

WITH_SUGGESTION

次のいずれかの意味でしたか? [<proposal>]

パラメーター

  • objectName: 解決できない列またはパラメーターの名前。
  • proposal: 考えられる候補のコンマ区切りリスト。

説明

Azure Databricks では、列、列の別名、または関数パラメーターが必要なコンテキストで識別子を識別できない場合は常に、このエラーが発生します。

このエラーにはいくつかの原因があります。

  • 列名またはパラメーター名のスペル ミス。
  • 実際には、識別子ではなく、文字列リテラルを指定するつもりだった。
  • ALTER TABLE を使用して列の名前が変更されたか、列が削除された
  • サブクエリの選択リストに列が含まれていなかった。
  • テーブルの別名または列の別名を使用して、列の名前が変更されている。
  • 列参照が相関しており、LATERAL を指定しなかった。
  • 列参照が、同じ選択リストまたはスカラー サブクエリ内に先に表示されるため、表示されないオブジェクトに対するものである。

対応策

エラーの対応策はエラーの原因によって異なります。

  • 名前と修飾子のスペルが間違っていませんか?

    objectList で提供されている列と比較し、スペルを修正します。

  • 代わりに文字列リテラルを指定するつもりでしたか?

    バックティック (アクセント グレーブ) ではなく、単一引用符でリテラルを囲みます。

  • サブクエリから列が削除されましたか?

    サブクエリの選択リストに列を追加します。

  • 同じ from 句の以前のリレーション内の列を参照していますか?

    未解決の列を含むサブクエリの前に、キーワード LATERAL を追加します。 相関クエリのサポートには制限があります。 クエリを書き換える (関連付けを解除する) 必要がある場合があります。

  • 列またはフィールドを解決できないのはなぜかわかりません。

    名前解決の詳細な説明については、「列、フィールド、パラメーター、変数の解決」を参照してください。

> CREATE OR REPLACE TEMPORARY VIEW colors(cyan, magenta, yellow) AS VALUES(10, 20, 5);

-- The column reference has been misspelled
> SELECT jello FROM colors;
  [UNRESOLVED_COLUMN.WITH_SUGGESTION] A column or function parameter with name `jello` cannot be resolved.
  Did you mean one of the following? [`colors`.`cyan`, `colors`.`yellow`, `colors`.`magenta`]

-- Correct the spelling
> SELECT yellow FROM colors;
 5

-- The qualifier has been misspelled
> SELECT color.yellow FROM colors;
 [UNRESOLVED_COLUMN.WITH_SUGGESTION] A column or function parameter with name `color`.`yellow` cannot be resolved.
 Did you mean one of the following? [`colors`.`cyan`, `colors`.`yellow`, `colors`.`magenta`]

-- Correct the spelling
> SELECT colors.yellow FROM colors;
 5

-- Forgot to quote a literal
> SELECT hello;
 [UNRESOLVED_COLUMN.WITHOUT_SUGGESTION] A column or function parameter with name `hello` cannot be resolved.

-- Use single quotes
> SELECT 'hello';

-- Used the wrong quotes for a literal
> SELECT `hello`;
 [UNRESOLVED_COLUMN.WITHOUT_SUGGESTION] A column or function parameter with name `hello` cannot be resolved.

-- Use single quotes instead
> SELECT 'hello';

-- Column "got lost" in a subquery.
> SELECT cyan, magenta, yellow
    FROM (SELECT cyan, magenta
            FROM colors) AS c;
 [UNRESOLVED_COLUMN.WITH_SUGGESTION] A column or function parameter with name `yellow` cannot be resolved.
 Did you mean one of the following? [`c`.`cyan`, `c`.`magenta`]

-- Add the missing column
> SELECT cyan, magenta, yellow
    FROM (SELECT cyan, magenta, yellow
            FROM colors) AS c;
 10   20    5

-- Columns got renamed in the table alias
> SELECT cyan, magenta, yellow
    FROM (SELECT cyan, magenta, yellow
            FROM colors) AS c(c, m, y);
 [UNRESOLVED_COLUMN.WITH_SUGGESTION] A column or function parameter with name `cyan` cannot be resolved.
 Did you mean one of the following? [`c`.`c`, `c`.`m`, `c`.`y`];

-- Adjust the names
> SELECT c, m, y
    FROM (SELECT cyan, magenta, yellow
            FROM colors) AS c(c, m, y);
 10   20    5

-- A correlated reference
> SELECT * FROM colors, (SELECT cyan + magenta + yellow AS total_use);
 [UNRESOLVED_COLUMN.WITHOUT_SUGGESTION] A column or function parameter with name `cyan` cannot be resolved.

-- Add LATERAL to permit correation
> SELECT * FROM colors, LATERAL(SELECT cyan + magenta + yellow AS total_use);
 10    20     5    35

-- Or de-correlate
> SELECT *, cyan + magenta + yellow AS total_use FROM colors;
 10    20     5    35

-- A misspelled parameter name
> CREATE OR REPLACE FUNCTION plus(a INT, b INT) RETURNS INT RETURN arg1 + arg2;
 [UNRESOLVED_COLUMN.WITH_SUGGESTION] A column or function parameter with name `arg1` cannot be resolved.
 Did you mean one of the following? [`plus`.`a`, `plus`.`b`]

-- Fix the names
> CREATE OR REPLACE FUNCTION plus(a INT, b INT) RETURNS INT RETURN a + b;
> SELECT plus(1, 2);
 3