Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Tabelle oder Ansicht <relationName>
kann nicht gefunden werden. Überprüfen Sie die Rechtschreibung und Korrektheit des Schemas und Katalogs.
Wenn Sie den Namen nicht mit einem Schema qualifiziert haben, überprüfen Sie die ausgabe current_schema() oder qualifizieren Sie den Namen mit dem richtigen Schema und Katalog.
Um den Fehler beim Ablegen zu tolerieren, verwenden Sie DROP VIEW IF EXISTS oder DROP TABLE IF EXISTS.
Parameter
- relationName: Der Name der angegebenen Beziehung (Tabelle oder Ansicht), die nicht gefunden werden kann.
Erklärung
Persistente Tabellen und Sichten bestehen aus drei Namensteilen: <catalog>.<schema>.<relation>
.
Wenn Sie nicht alle drei Teile des Namens angeben, wird er automatisch unter Verwendung des aktuellen Katalogs oder des aktuellen Schemas vervollständigt.
Dies ähnelt der Art und Weise, wie das Arbeitsverzeichnis Ihres Dateisystems beeinflusst, welche Dateien Sie sehen können, es sei denn, Sie geben den Pfad vollständig an.
Temporäre Sichten oder allgemeine Tabellenausdrücke (Common Table Expressions, CTE) sind nur innerhalb der Sitzung oder Abfrage vorhanden und dürfen nie qualifiziert werden.
Der häufigste Grund für das Nichtfinden einer Tabelle oder Ansicht sind:
- Das Objekt ist einfach nicht vorhanden.
- Der Objektname, das Schema oder der Katalog wurde falsch geschrieben.
- Das Objekt befindet sich nicht im aktuellen Schema.
- Der Benutzer hat keinen Zugriff auf das Objekt und kann es daher nicht sehen.
Milderung
Die Entschärfung des Fehlers hängt von der Ursache ab:
Haben Sie die Tabelle oder Ansicht, das Schema oder den Katalognamen falsch geschrieben?
Korrigieren Sie die Schreibweise.
Haben Sie den Namen nicht vollständig qualifiziert, und das Ergebnis von
VALUES current_schema()
stimmt nicht mit dem qualifizierten Namen der Tabelle oder Ansicht überein?Qualifizieren Sie die
relationName
explizit mit ihrem Schema und Katalog, oder geben Sie einenUSE SCHEMA
-Befehl ein, um das gewünschte implizite Schema festzulegen.Haben Sie auf eine temporäre Sicht verwiesen, die sich allerdings in einer früheren, abgelaufenen oder anderen Sitzung befand?
Erstellen Sie die temporäre Ansicht mit
CREATE TEMPORARY VIEW \<relationName\> …
neu, oder wechseln Sie zu einer dauerhaften Ansicht.Haben Sie auf einen allgemeinen Tabellenausdruck (Common Table Expression, CTE) verwiesen, der jedoch außerhalb des Gültigkeitsbereichs liegt?
Verschieben Sie die Definition des CTE in die äußerste Abfrage. Das ist der Anfang der Anweisung, sodass sie überall innerhalb der Anweisung sichtbar ist.
Möchten Sie eine DDL-Anweisung ausgeben, z. B. "DROP TABLE' nur, wenn das Objekt vorhanden ist?
Geben Sie die Anweisung mithilfe der
IF EXISTS
-Klausel aus, z. B.DROP TABLE \<relationName\> IF EXISTS
.Wissen Sie, dass das Objekt vorhanden ist, aber Sie können es nicht in
SHOW TABLE
sehen?Wenden Sie sich an Ihren Administrator, um Zugriff auf die gewährte Tabelle zu erhalten. Dies muss möglicherweise auch Zugriff auf das Schema und den Katalog enthalten.
Es ist unklar, warum Sie die Tabelle oder Ansicht nicht auflösen können?
Eine ausführliche Beschreibung der Namensauflösung finden Sie unter Tabellen- und Sichtauflösung.
Beispiele
-- The table is located in othercat.someschema
> SELECT count(*) FROM t;
[TABLE_OR_VIEW_NOT_FOUND] The table or view `t` cannot be found.
> VALUES current_schema();
default
-- Change the current schema
> USE SCHEMA othercat.someschema;
> SELECT count(*) FROM T;
1
-- Alternatively qualify the table
> SELECT count(*) FROM othercat.someschema.t;
1
-- A reference to a CTE in the wrong scope:
> SELECT count(1) FROM (WITH v(c1) AS (VALUES (1)) VALUES(2)) AS t(c1), v;
[TABLE_OR_VIEW_NOT_FOUND] The table or view `v` cannot be found.
-- Move the CTE to top level
> WITH v(c1) AS (VALUES (1))
SELECT count(1) FROM VALUES(2) AS t(c1), v;
1
-- Dropping a non existing view
> DROP VIEW v;
[TABLE_OR_VIEW_NOT_FOUND] The table or view `v` cannot be found.
> DROP VIEW IF EXISTS v;