UNRESOLVED_COLUMN, klasa błędów
Nie można rozpoznać parametru column, zmiennej lub rutynowej o nazwie <objectName>
.
Ta klasa błędów ma następujące pochodne klasy błędów.
WITHOUT_SUGGESTION
Parameters
- objectName: nazwa column lub parametru, którego nie można rozpoznać.
WITH_SUGGESTION
Czy masz na myśli jedną z następujących czynności? [<proposal>
]
Parameters
- objectName: nazwa column lub parametru, którego nie można rozpoznać.
- propozycja: lista list potencjalnych kandydatów, rozdzielona przecinkami.
Wyjaśnienie
Usługa Azure Databricks zgłasza ten błąd, gdy nie może zidentyfikować identifier w kontekście where, w którym oczekuje się column, aliasu column lub parametru funkcji.
Istnieje kilka przyczyn tego błędu:
- Błąd pisowni w nazwie column lub w nazwie parametru .
- W rzeczywistości należy określić literał ciągu, a nie identifier.
- Nazwa column została zmieniona lub porzucona za pomocą ALTER TABLE
- column nie została uwzględniona w selectlist podzapytania.
- Nazwa column została zmieniona przy użyciu aliasu table lub aliasu column.
- Odwołanie column jest skorelowane i nie określiłeś BOKOWE.
- Odwołanie column dotyczy obiektu, który nie jest widoczny, ponieważ pojawia się wcześniej w tym samym selectlublist albo w podzapytaniu skalarnym.
Czynności zapobiegawcze
Ograniczenie ryzyka błędu zależy od przyczyny:
Czy pisownia nazwy i kwalifikatorów jest nieprawidłowa?
Porównaj z columns oferowanymi w
objectList
i popraw pisownię.Czy zamiast tego chodziło o określenie literału ciągu?
Ująć literał w pojedynczy cudzysłów, a nie znaczniki wsteczne (grób akcentowy).
Czy column został pominięty w podzapytaniu?
Dodaj column do selectlist podzapytania.
Czy odwołujesz się do column we wcześniejszej relacji w tej samej klauzuli from?
Dodaj słowo kluczowe
LATERAL
przed podzapytaniem, w którym występuje nierozwiązany column. Obsługa skorelowanych zapytań jest ograniczona. Może być konieczne ponowne zapisywanie (derelowanie) zapytania.Nie jest jasne, dlaczego nie można rozpoznać column lub pola?
Aby uzyskać szczegółowy opis rozpoznawania nazw, zapoznaj się z rozpoznawaniem pola, parametru, i zmiennej, a także z Columni.
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