ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
507
507
EMPFEHLEN
-
24.02.11 15:12 #1
- Registriert seit
- Feb 2011
- Beiträge
- 5
Bitte brauche eure Hilfe
Habe ein Oracle Db mit der ich verbunden bin. Ich kann mit direkten Werten in die Db schreiben. Jedoch wenn ich den Wert per console eingebe, bekomme ich eine Fehlermeldung
.
Beispiel:orstat.executeUpdate("insert into KMPreis values(1,'10.1.2000','10.10.2000',0.6)");
diese eingabe passt. Wenn ich jedoch 1 durch eine Variabel ersetze dann bekomm ich eine Fehlermeldung.
Wie kann ich dieses Problem lösen?
Danke für deine Hilfe!
-
wie lautet die Fehler meldung?
Ich rate mal ins blaue, der Typ der Variable passt nicht mit den Typ den die DB erwartet
-
24.02.11 21:57 #3
- Registriert seit
- Feb 2011
- Beiträge
- 5
ind der db ist der datentyp number(3) und in java int. müsste doch zusammenpassen?
es funktioniert auch nicht mit einem String.Geändert von belluslupus (24.02.11 um 22:06 Uhr)
-
Am einfachsten wäre es, wenn du die Fehlermeldung posten würdest, das würde ne Menge Rätsel-Arbeit ersparen.
Optimal wäre noch, wenn vorhanden, ein Log mit dem SQL-Statement, das abgeschickt wurde.
-
24.02.11 22:11 #5
- Registriert seit
- Feb 2011
- Beiträge
- 5
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1169)
at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1615)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1580)
at Verbindung.Verbindung.lesen(Verbindung.java:36)
at Verbindung.BeginnZugriff.main(BeginnZugriff.java:13)
Die Fehlermeldung(en)
orstat.executeUpdate("insert into kmpreis values(id,'1.1.2000,'31.12.2000,0.4)"); so geht es nicht
orstat.executeUpdate("insert into kmpreis values(1,'1.1.2000,'31.12.2000,0.4)");so geht es
-
Das liegt daran, dass du den Variablennamen in den String reinschreibst, also als Text, es muss so aussehen:
Code java:1
orstat.executeUpdate("insert into kmpreis values("+id+",'1.1.2000,'31.12.2000,0.4)")
Gruß
Matt
-
25.02.11 12:05 #7
- Registriert seit
- Feb 2011
- Beiträge
- 5
Leider nein habe ich schon versucht
Ergebniss:
Exception in thread "main" java.sql.SQLException: ORA-00933: SQL-Befehl wurde nicht korrekt beendet
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1169)
at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1615)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1580)
at Verbindung.Verbindung.lesen(Verbindung.java:39)
at Verbindung.BeginnZugriff.main(BeginnZugriff.java:13)
auch ein einfaches ' geht nicht, sowie jegliche Verkettung habe ich bereits versucht (ohne Erfolg).
lg belluslupus
Kann es sein dass die Connection nicht stimmt?
public static OracleConnection newConnection() throws Exception {
OracleDataSource zugriff= new OracleDataSource();
zugriff.setURL("jdbc:oracle:thin:@localhost:1521:xe");
zugriff.setUser("bus");
zugriff.setPassword("busreservierung");
return (OracleConnection) zugriff.getConnection();
}Geändert von belluslupus (25.02.11 um 12:17 Uhr)
-
ich hasse es solche strings in java zubauen und zur db zu senden

der befehlt von Matt297 ist fastrichtig, auf jeden fall besser als das was belluslupus gemacht hat
ich würde die ' noch mals überprüfen entweder müsste jeder wert diese davor und danach bekommen
also
Code java:1
orstat.executeUpdate("insert into kmpreis values('"+id+"','1.1.2000','31.12.2000','0.4')")
ich habe auch schon stunden davorverbracht diese miesen ' richtig zu setzen
alternativ würde ich dir eine DB Api wie Hibernate empfehlen, diese macht es java typischer db befehle zuerzeugen ohne sich mit string befehlen rum schlagen zu müssen.
-
26.02.11 20:06 #9
- Registriert seit
- Feb 2011
- Beiträge
- 5
Danke das war's.
Die Lösung ist '"+id+"' und es passt
Vielen Dank für Eure Hilfe.
im besonderen Danke an wakoz.
Ähnliche Themen
-
Datenbank über Funktion einer Klasse auslesen und Werte verwenden
Von Ghostwarrior im Forum PHPAntworten: 0Letzter Beitrag: 18.11.08, 17:56 -
[VB.NET] Enum-Werte per Console.Readline einlesen
Von DirkHo im Forum .NET DatenverwaltungAntworten: 2Letzter Beitrag: 25.04.07, 14:08 -
Tabelle erzeugen, Werte eingeben und übergeben
Von Rasenkantenstein im Forum PHPAntworten: 3Letzter Beitrag: 05.01.06, 12:18 -
Werte in ein Formular eingeben und diese auf der selben Seite auswerten
Von Homie Domi im Forum PHPAntworten: 4Letzter Beitrag: 04.11.04, 17:29 -
Werte in DB eingeben die html-Tags beinhalten
Von deinertsche im Forum PHPAntworten: 2Letzter Beitrag: 05.06.02, 15:38





Zitieren
Login





