SQL Exceptions
08XXX Connection Exception
Aus bestimmten Gründen kann die Verbindung zur Datenbank nicht aufgebaut werden.
Beispiel
connection exception - authentification failed
Erklärung
Das Passwort wurde falsch angegeben.
Lösung
Geben Sie das korrekte Passwort ein.
420XX Syntax Error
Die angegebene SQL-Syntax enthält Fehler und kann daher nicht kompiliert werden.
Beispiel
[42000] syntax error, unexpected _FROM
Erklärung
Im SQL-Text wurde das Token FROM an einer Stelle verwendet, an der es von der SQL-Grammatik nicht erlaubt ist.
Lösung
Korrigieren Sie das SQL und führen Sie das Statement erneut aus.
Weitere Beispiele
-
- SELECT ROWID FROM my_view;
- Error: [42000] ROWID IS INVALID FOR non-material TABLES
- SELECT * fro dual;
- Error: [42000] syntax error, unexpected identifier_chain2 [line 1, COLUMN 14]
- SELECT dummy FROM FROM;
- Error: [42000] syntax error, unexpected FROM_ [line 1, COLUMN 23]
- CREATE TABLE TABLE (i INT);
- Error: [42000] syntax error, unexpected TABLE_, expecting identifier_chain2 [line 1, COLUMN 21]
425XX AccessOrRuleViolation
Der aktuelle Benutzer darf dieses SQL nicht ausführen, da der die entsprechenden System- bzw. Objekt-Privilegien nicht besitzt.
Beispiel
insufficient privileges for creating schema
Erklärung
Der Nutzer besitzt nicht das Privileg "CREATE SCHEMA", dass zur Erzeugung von Schemas nötig ist.
Lösung
Weisen Sie dem Benutzer mittels dem GRANT-Befehl die benötigten Privilegien zu, falls dies gewünscht ist.
Weitere Beispiele
-
- CREATE ROLE r;
- Error: [42500] ROLE name R conflicts WITH another USER OR ROLE name
- GRANT SELECT ON my_table TO other_user;
- Error: [42500] insufficient PRIVILEGES FOR granting OBJECT PRIVILEGE
- CREATE USER my_user IDENTIFIED BY my_password;
- Error: [42500] insufficient PRIVILEGES FOR creating USER
- ALTER USER other_user IDENTIFIED BY new_password;
- Error: [42500] insufficient PRIVILEGES FOR changing password OF other USER
0AXXX Feature Not Supported
Ein angegebenes SQL-Feature wird entweder falsch benutzt oder von der DB erkannt, aber noch nicht unterstützt.
Beispiel
Feature not supported: window clause
Erklärung
In diesem Fall wurde eine Window-Klausel für analytische Funktionen verwendet, die nicht unterstützt wird.
Lösung
Prüfen Sie Ihre Angaben. Handelt es sich tatsächlich um ein fehlendes Feature, stellen Sie einen Feature-Request an EXASOL.
Weitere Beispiele
-
- SELECT EXTRACT (HOUR FROM DATE '2009-01-12') FROM dual;
- Error: [0A000] Feature NOT supported: EXTRACT(HOUR, DATE) NOT supported
- SELECT NULLIFZERO('a') FROM dual;
- Error: [0A000] Feature NOT supported: NULLIFZERO WITH non NUMERIC TYPE
- SELECT COUNT(*) FROM dual a, dual b WHERE a.dummy(+)=b.dummy(+);
- Error: [0A000] Feature NOT supported: OUTER JOIN WITHOUT INNER TABLE
22XXX data exception
Bei einer Operation (Einfügen von Daten oder Berechnung) wird versucht eine Zahl anzugegeben oder zu verarbeiten, die außerhalb des möglichen Wertebereichs liegt.
Beispiel
[22003] data exception - numeric value out of range
Ursache
Das Wert ist zu groß für den angegebenen Datentyp: z.B. CAST(100 as DECIMAL(3,1)).
Lösung
- Prüfen Sie die Eingangsdaten
- Benutzen Sie passende DECIMAL Typen.
- Wenn Sie Aggregatsfunktionen benutzen, versuchen Sie Eingangswerte nach DOUBLE PRECISION zu wandeln. Die Genauigkeit ist dann auf 18 Ziffern begrenzt, Sie erhalten als Ausgleich aber einen sehr breiten Wertebereich.
Weitere Beispiele
-
- SELECT TO_DATE('2009-01-01', 'YYYY-MO-DD') FROM dual;
- Error: [22007] DATA EXCEPTION - INVALID datetime FORMAT
- SELECT CAST(123.45 AS DECIMAL(3,1)) FROM dual;
- Error: [22003] DATA EXCEPTION - NUMERIC VALUE OUT OF RANGE
- SELECT CAST(20 AS BOOL) FROM dual;
- Error: [22624] DATA EXCEPTION - Cannot CAST this VALUE TO BOOLEAN
- SELECT LENGTH(dummy)+1/0 FROM dual;
- Error: [22012] DATA EXCEPTION - division BY zero
40001 GlobalTransactionRollback
Die aktuelle Transaktion wurde zurückgerollt, da die DB durch einen Fehler ansonsten in einen inkonsistenten Zustand geraten würde.
Beispiel
[40001] GlobalTransactionRollback msg: Unable to get a stable set of rows in the source tables
Ursache
Diese Exception kann nur in Zusammenhang mit einem MERGE-Statement auftreten. Sie bedeutet, dass einige Zeilen der Quelltabelle Treffer in der Zieltabelle erzielen, aber verschiedene Aktionen / Updates auslösen würden. Da in SQL keine Ausführungsreihenfolge garantiert ist, würde dies zu einem nicht spezifizierten Ergebnis führen.
Lösung
- Mehrfache Übereinstimmungen zusammenfassen, z.B. über ein Subselect mit Aggregatsfunktionen
- Eingabedaten korrigieren
- Iterativen Prozess aufsetzen
Beispiel
[40001] GlobalTransactionRollback msg: data exception - string data, right truncation
Ursache
Während der Ausführung wurde ein String generiert oder gelesen, der die Länge des Zieldatentypes übersteigt. Meist ist die Ursache eine Cast-Operation, eine Konkatenation oder eine Beladung von Daten in eine Tabelle mit abweichender Spezifikation. Aktuell gibt es keine Möglichkeit festzustellen, welche Zeile/Spalte von dem Fehler betroffen ist bzw. den Fehler verursacht hat.
Lösung
- Prüfen Sie explizite Cast-Operationen und entsprechende Datentypen in Ihrer Query. Passen Sie die Query und/oder die Datentypen der Zieltabelle entsprechend an.
- Vergrößern Sie Varchar-Typen in Zieltabellen.
- Benutzen Sie MAX(LENGTH(...)), um generierte Stringlängen zu bestimmen
40004 Connection Lost
Ursache
Nach einem bestimmten Timeout, schließt EXASolution idle Sessions (keine offene Transaktion vorhanden), aber speichert die sessionbezogenen Informationen wie Logontime, aktuell geöffnetes Schema, usw) noch ca. 24 Stunden. EXAplus wird die Verbindung zum Server automatisch wiederherstellen, wenn der Nutzer versucht eine neue Query auszuführen. Passiert das nach dem Ablauf der 24-Stundenfrist, erhalten Sie die oben aufgeführte Fehlermeldung.
Diese Fehlermeldung werden Sie auch dann erhalten, wenn Ihre Session mittels EXA KILL abgebrochen wurde.
Dadurch soll vermieden merden, dass Queries im falschen Kontext ausgeführt werden.
Lösung
Loggen Sie sich aus, bevor Sie nach Hause gehen.
40002 Successfully reconnected after connection loss, transaction was rolled back
Erklärung
Die Netzwerkverbindung wurde zwischenzeitlich getrennt. Der Client stellte die Verbindung wieder her. Die offene Transaktion musste zurückgerollt werden, um Dateninkonsistenzen zu vermeiden.
Lösung
Lassen Sie ihre Netzwerkumgebung überprüfen.
40005, 40006 Successfully reconnected after internal server error, transaction was rolled back
Erklärung
Ihr Prozess wurde wegen zum Beispiel eines Neustarts der Datenbank beendet oder es ist intern ein Problem aufgetreten.
Lösung
Setzen Sie sich bitte in Verbindung mit dem EXASOL Support Team.















