tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
507
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    belluslupus belluslupus ist offline Rookie
    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!
     

  2. #2
    wakoz wakoz ist offline Mitglied Gold
    Registriert seit
    Apr 2010
    Beiträge
    114
    wie lautet die Fehler meldung?

    Ich rate mal ins blaue, der Typ der Variable passt nicht mit den Typ den die DB erwartet
     

  3. #3
    belluslupus belluslupus ist offline Rookie
    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)
     

  4. #4
    Matt297 Matt297 ist gerade online Mitglied Gold
    Registriert seit
    Oct 2008
    Beiträge
    179
    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.
     

  5. #5
    belluslupus belluslupus ist offline Rookie
    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
     

  6. #6
    Matt297 Matt297 ist gerade online Mitglied Gold
    Registriert seit
    Oct 2008
    Beiträge
    179
    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
     

  7. #7
    belluslupus belluslupus ist offline Rookie
    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)
     

  8. #8
    wakoz wakoz ist offline Mitglied Gold
    Registriert seit
    Apr 2010
    Beiträge
    114
    Zitat Zitat von Matt297 Beitrag anzeigen
    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
    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.
     

  9. #9
    belluslupus belluslupus ist offline Rookie
    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

  1. Antworten: 0
    Letzter Beitrag: 18.11.08, 17:56
  2. [VB.NET] Enum-Werte per Console.Readline einlesen
    Von DirkHo im Forum .NET Datenverwaltung
    Antworten: 2
    Letzter Beitrag: 25.04.07, 14:08
  3. Tabelle erzeugen, Werte eingeben und übergeben
    Von Rasenkantenstein im Forum PHP
    Antworten: 3
    Letzter Beitrag: 05.01.06, 12:18
  4. Antworten: 4
    Letzter Beitrag: 04.11.04, 17:29
  5. Werte in DB eingeben die html-Tags beinhalten
    Von deinertsche im Forum PHP
    Antworten: 2
    Letzter Beitrag: 05.06.02, 15:38

Stichworte