java.sql.SQLException: ORA-00928: fehlendes SELECT-Schlüsselwort. beim Einfügen von Datensätzen in DB mit JDBC

8

Ich bekomme einen Fehler, wenn ich versuche, einige Zeilen in eine db einzufügen. also hier ist der Code

%Vor%

und alles auf der db ist vom varchar-Typ, prüfte die Spalten doppelt (sie alle haben den gleichen Namen), entfernte die Anführungszeichen vom Spaltennamen (gleiches Ergebnis) ohne Erfolg. um es hinzuzufügen, ist die Fehlermeldung nicht sehr hilfreich.

irgendwelche Vorschläge würden geschätzt werden.

    
niccolo m. 25.11.2011, 04:07
quelle

6 Antworten

3

Ich kann zwei Probleme erkennen:

  1. Keine Notwendigkeit für einfache Anführungszeichen um Spaltennamen. Aber Sie können es in Anführungszeichen setzen. Dies ist erforderlich, wenn Sie reservierte Schlüsselwörter für Spaltennamen oder Tabellennamen verwenden. Hier DATE .
  2. Sie brauchen ein Leerzeichen vor VALUES .

Also musst du insertStmt auf etwas so ändern:

%Vor%     
Jomoos 25.11.2011, 05:05
quelle
4

Sie müssen die SQL -Anweisung ändern. (Verwenden Sie niemals reservierte Wörter als Identifikatoren)

%Vor%

Verwenden Sie " (doppelte Anführungszeichen), um die reservierten Wörter / Schlüsselwörter zu umgehen.

    
adatapost 25.11.2011 05:00
quelle
2

Drucken Sie insertStmt String in der Konsole und versuchen Sie es direkt im Backend auszulösen. Es gibt Ihnen genaue Fehler im Backend. Es sieht etwas Abstands- oder Syntaxfehler.

    
Jwalin Shah 25.11.2011 04:43
quelle
1

Ich kam gerade zu dieser Seite, als ich nach ORA-00928 suchte, und ich möchte feststellen, dass mein Problem ein zusätzliches Komma am Anfang der Spaltenliste war:

%Vor%     
Ed Brannin 01.10.2012 21:48
quelle
0

Für andere, die nach dem gleichen Fehler suchen: Bei anderen syntaktischen Problemen mit der Abfrage kann die gleiche Ausnahme ausgelöst werden. Zum Beispiel das Wort VALUES auslassen.

    
Dean 06.02.2015 16:59
quelle
0

Ich habe das gleiche Problem ausgeführt, und in meinem Fall war die Abfrage wie folgt:

%Vor%

Das Problem wurde durch den Spaltennamen number verursacht, da number ein reserviertes Schlüsselwort in Oracle ist und die Ausnahme eine Art irreführender ORA-00928: missing SELECT keyword war.

Nachdem die Spalte number entfernt wurde, wurde die Anweisung normal ausgeführt:

%Vor%     
Vlad Mihalcea 27.04.2016 08:58
quelle

Tags und Links