# ORA-00911: invalid character . Hilfe!



## metaltiffy (24. Sep 2007)

Ich habe schon seit Tagen ein Problem...
Ich kriege beim durchführen immer die Meldung ORA-00911: invalid character...

Wenn ich aber den String, den ich verwende, mir ausgeben lasse und direkt in den SQL-Navigator kopiere, läuft alles..



```
public void speichern(){
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			cn = DriverManager.getConnection(URL,USER, PASSWD);	
			cn.setAutoCommit(true);
		    System.out.println("getfile"+file);
		    file = "C:/Dokumente und Einstellungen/scwep01/Eigene Dateien/Eigene Bilder/mini-fin.bmp";
			if (file == null){
				labmeld.setText("kein Bild ausgewählt");
			}
			else {
		    fis     = new FileInputStream(file);
		    st = cn.createStatement();
		    String herst = t_herst.getText();
		    int jahr = Integer.parseInt(t_jahr.getText());
		    int vork = Integer.parseInt(t_preisvork.getText());
		    int nachk = Integer.parseInt(t_preisnachk.getText());
		    double price = vork + (nachk/100);
		    DecimalFormat df= new DecimalFormat("#0.00"); 
		    df.format(price);
		    System.out.println("preis "+price);
		    String string = "INSERT INTO Datentraeger " 
		        + "(Hersteller, Preis, E_Jahr,TYP_ID ) "
		        + "VALUES "
		        + "('" + herst   + "',"
		        + "'" + vork + "',"
		        + "'" + jahr + "',"
		        + "'" + datdefi + "');";
//		    rs = st.executeQuery(string);
		    System.out.println(string);
		    int rs = st.executeUpdate(string);
		    
		    System.out.println("rs = " +rs);

			}
		} catch (Exception ex) {
			System.out.println(ex);
			ex.printStackTrace();
		} finally {
			try {
				if (null != fis) fis.close(); } catch (Exception ex) {
			}
			try {
				if (null != pst)	pst.close();	} catch (Exception ex) {
			}
		}// ende finally
	}
```

Ich weiß echt nicht voran es liegt, vermutlich seh ich den Wald vor laute Bäumen nicht...

Noch zur Info:
die Felder sind alle Number in der Datenbank, außer Hersteller, das is Varchar2...
Außerdem hab ich noch einen Trigger mit einer Sequenz auf der Tabelle, die den Primarykey dat_id ausfühlt..
Vielleicht liegts ja daran, obwohl die Fehlermeldung dann anders aussähe...


----------



## metaltiffy (24. Sep 2007)

*Hüst*
Bin wohl zuoft auf absenden gegangen...
3fachPost...Steffi doof..


----------



## The_S (24. Sep 2007)

Naja, wenn du 'Wert' machst, übergibst du einen String. Übergebe nur Wert ohne Hochkommata, dann hast du eine Number.


----------



## metaltiffy (24. Sep 2007)

Ich hab das ja mit den Hochkommas in SQL kopiert..
da hat das gefunzt...

hab die grade mal weggemacht zum testen..
kommt aber immernoch der gleiche Fehler...


----------



## The_S (24. Sep 2007)

Hersteller muss natürlich weiterhin in hochkommata bleiben ...

Ansonsten: Welche Werte übergibst du denn genau?


----------



## metaltiffy (24. Sep 2007)

Hab ich ja auch so gelassen...
So doof bin ich auch nicht... nur ein bisschen..
Das ist der String der dem executeupdate übergeben wird

INSERT INTO Datentraeger (Hersteller, Preis, E_Jahr,TYP_ID ) VALUES ('Test',22,2007,2);


----------



## The_S (24. Sep 2007)

Dann lass mal das Semikolon am Ende weg.


----------



## Kim Stebel (24. Sep 2007)

könnte es vielleicht am verwendeten zeichensatz liege? UTF-8 vs ISO.......?


----------



## metaltiffy (24. Sep 2007)

Ich hatte das schon mehrfach ausprobiert....
Habs jetzt nochmal entfernt...
Und jetzt funktionierts....
Sonst kam immer sowas wie did not properly end...
Warum auch immer das jetzt funktioniert (Vorführeffekt.)

Vielen Dank für die Hilfe...
*Tagessoll erfüllt* ^^


----------



## The_S (24. Sep 2007)

Ich denke mal, der Fehler bei deinem 1. Test ist daraus reslutiert, dass du (wie von mir angemerkt) immer Strings übergibst, egal ob es sich um eine Number handelt oder nicht.

Nur so ne blöde Frage, Google kennst du? Wenn du nach deiner Fehlermeldung googlest (einfach 1 zu 1 kopiert), dann ist dieser Thread hier der erste Treffer, und dort wird genau dein Problem gelöst :roll:


----------



## metaltiffy (24. Sep 2007)

JA Google kenne ich, hab den Thread auch gefunden..
aber wie gesagt, hatte das mit dem Semikolon zuerst nicht geklappt....


----------

