UNRESOLVED_COLUMN, klasa błędów
Nie można rozpoznać kolumny, zmiennej lub rutynowego parametru o nazwie <objectName>
.
Ta klasa błędów ma następujące pochodne klasy błędów.
WITHOUT_SUGGESTION
Parametry
- objectName: nazwa kolumny lub parametru, którego nie można rozpoznać.
WITH_SUGGESTION
Czy masz na myśli jedną z następujących czynności? [<proposal>
]
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 za każdym razem, 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.
- Faktycznie zamierzasz określić literał ciągu, a nie identyfikator.
- Nazwa kolumny została zmieniona lub porzucona przy użyciu polecenia ALTER TABLE
- Kolumna nie została uwzględniona na liście wyboru podzapytania.
- 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 jest obiektem, który nie jest widoczny, ponieważ jest wyświetlany wcześniej na tej samej liście wyboru lub 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 kolumnami oferowanymi w elemecie
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 kolumna została pominięta z podzapytania?
Dodaj kolumnę do listy wyboru podzapytania.
Czy odwołujesz się do kolumny we wcześniejszej relacji w tej samej klauzuli from?
LATERAL
Dodaj słowo kluczowe przed podzapytaniem z nierozwiązaną kolumną. Obsługa skorelowanych zapytań jest ograniczona. Może być konieczne ponowne zapisywanie (derelowanie) zapytania.Nie jest jasne, dlaczego nie można rozpoznać kolumny lub pola?
Aby uzyskać szczegółowy opis rozpoznawania nazw, zobacz Kolumna, pole, parametr i rozdzielczość zmiennych.
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