UNRESOLVED_COLUMN, klasa błędów
Nie można rozpoznać parametru kolumny lub funkcji o nazwie.
WITHOUT_SUGGESTION
Parametry
- objectName: nazwa kolumny lub parametru, którego nie można rozpoznać.
WITH_SUGGESTION
Czy chodziło o jedną z poniższych? []
Parametry
- objectName: nazwa kolumny lub parametru, którego nie można rozpoznać.
- propozycja: Rozdzielona przecinkami lista potencjalnych kandydatów.
Wyjaśnienie
Usługa Azure Databricks zgłasza ten błąd, gdy nie może zidentyfikować identyfikatora w kontekście, w którym oczekuje kolumny, aliasu kolumny lub parametru funkcji.
Istnieje kilka przyczyn tego błędu:
- Błąd pisowni w nazwie kolumny lub nazwie parametru.
- W rzeczywistości oznacza się określenie literału ciągu, a nie identyfikatora.
- Nazwa kolumny została zmieniona lub porzucona przy użyciu funkcji ALTER TABLE
- Kolumna nie została uwzględniona na liście wybranych podquerii.
- Nazwa kolumny została zmieniona przy użyciu aliasu tabeli lub aliasu kolumny.
- Odwołanie do kolumny jest skorelowane i nie określono parametru LATERAL.
- Odwołanie do kolumny dotyczy obiektu, który nie jest widoczny, ponieważ jest on wyświetlany wcześniej na tej samej liście wyboru lub w podquerii skalarnej.
Ograniczanie ryzyka
Ograniczenie ryzyka błędu zależy od przyczyny:
Czy pisownia nazwy i kwalifikatorów jest nieprawidłowa?
Porównaj z kolumnami oferowanymi w elemecie
objectList
i napraw pisownię.Czy zamiast tego chodziło o określenie literału ciągu?
Ujęć literał w cudzysłów pojedynczych, a nie back-ticks (grób wyróżniający).
Czy kolumna została pominięta z podquery?
Dodaj kolumnę do listy wyboru podquery.
Czy odwołujesz się do kolumny we wcześniejszej relacji w tej samej klauzuli from?
LATERAL
Dodaj słowo kluczowe przed podquery z nierozwiązaną kolumną. Skorelowana obsługa zapytań jest ograniczona. Może być konieczne ponowne zapisywanie (derelowanie) zapytania.Nie jest jasne, dlaczego nie można rozpoznać kolumny lub pola?
Zapoznaj się z artykułem Kolumna, pole i rozdzielczość parametrów, aby uzyskać szczegółowy opis rozpoznawania nazw.
Przykłady
> 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