# oracle:ORA-01008: Nicht allen Variablen ist ein Wert zugeord



## lsblsbtmp (29. Mai 2006)

hallo.
ich grieg ständig diesen fehler: 
ORA-01008: Nicht allen Variablen ist ein Wert zugeordnet.

Dbms-System ist Oracle 10g Express Edition (Treiber ojdbc14_g)

hab schon alles überprüft, und komme einfach nicht weiter.
alle übergebenen werte haben auf jeden fall einen wert.
das habe ich überprüft.
auch die sql-felder sind alle korrekt.
woran könnte es liegen?..

viell. sieht jemand was ich nicht sehe..
mein code:


```
con.setAutoCommit(false);

		sql = "INSERT INTO kunde " + "VALUES (?,?,?,?,?,?)";
		PreparedStatement ps = con.prepareStatement(sql);
		ps.setString(1, pFields.get("kunde_id"));
		ps.setString(2, pFields.get("kunde_anrede"));
		ps.setString(3, pFields.get("kunde_vorname"));
		ps.setString(4, pFields.get("kunde_nachname"));
		if(pFields.get("kunde_firma") == null
				|| pFields.get("kunde_firma").equals(""))
			ps.setNull(5, Types.VARCHAR);
		else
			ps.setString(5, pFields.get("kunde_firma"));
		try
		{
			Date javaDate = DateFormat.getDateInstance(DateFormat.DEFAULT).parse(pFields.get("kunde_geburtsdatum"));
			java.sql.Date sqlDate = getSqlDate(javaDate);
			ps.setDate(6, sqlDate);
		}
		catch(ParseException e)
		{
			e.printStackTrace();
		}
		
		ps.executeUpdate(sql);
		ps.close();
		
		sql = "INSERT INTO kontaktdaten " + "VALUES (?,?,?,?,?,?,?,?,?)";
		ps = con.prepareStatement(sql);
		ps.setString(1, pFields.get("kunde_id"));
		ps.setString(2, pFields.get("kunde_strasse_hausnr"));
		ps.setString(3, pFields.get("kunde_plz"));
		ps.setString(4, pFields.get("kunde_ort"));
		ps.setString(5, pFields.get("kunde_land_id"));
		ps.setString(6, pFields.get("kunde_email"));
		ps.setString(7, pFields.get("kunde_telefon1"));
		if(pFields.get("kunde_telefon2") == null
				|| pFields.get("kunde_telefon2").equals(""))
			ps.setNull(8, Types.VARCHAR);
		else
			ps.setString(8, pFields.get("kunde_telefon2"));
		if(pFields.get("kunde_telefax") == null
				|| pFields.get("kunde_telefax").equals(""))
			ps.setNull(9, Types.VARCHAR);
		else
			ps.setString(9, pFields.get("kunde_telefax"));

		ps.executeUpdate(sql);
		ps.close();

		if(pFields.get("lieferanschrift_aktiv") != null
				&& pFields.get("lieferanschrift_aktiv").equals("Y"))
		{
			sql = "INSERT INTO lieferanschrift "
					+ "VALUES (?,?,?,?,?,?,?,?,?,?)";
			ps = con.prepareStatement(sql);
			ps.setString(1, pFields.get("kunde_id"));
			ps.setString(2, pFields.get("lieferanschrift_anrede"));
			ps.setString(3, pFields.get("lieferanschrift_vorname"));
			ps.setString(4, pFields.get("lieferanschrift_nachname"));
			if(pFields.get("lieferanschrift_firma") == null
					|| pFields.get("lieferanschrift_firma").equals(""))
				ps.setNull(5, Types.VARCHAR);
			else
				ps.setString(5, pFields.get("lieferanschrift_firma"));
			ps.setString(6, pFields.get("lieferanschrift_strasse_hausnr"));
			ps.setString(7, pFields.get("lieferanschrift_plz"));
			ps.setString(8, pFields.get("lieferanschrift_ort"));
			ps.setString(9, pFields.get("lieferanschrift_land_id"));
			ps.setString(10, pFields.get("lieferanschrift_aktiv"));

			ps.executeUpdate(sql);
			ps.close();
		}

		sql = "INSERT INTO zugangsdaten " + "VALUES (?,?,?)";
		ps = con.prepareStatement(sql);
		ps.setString(1, pFields.get("kunde_id"));
		ps.setString(2, pFields.get("kunde_benutzername"));
		ps.setString(3, pFields.get("kunde_passwort"));

		ps.executeUpdate(sql);
		ps.close();

		con.commit();
		con.setAutoCommit(true);
```


----------



## thE_29 (30. Mai 2006)

In Welcher Zeilt kriegst du den den Fehler??


Und unterlasse das hier


sql = "INSERT INTO lieferanschrift "
               + "VALUES (?,?,?,?,?,?,?,?,?,?)"; 


Es hat keinen Sinn Strings über 2 Zeilen zu tun und dann so zusammenhängen (vielleicht in VB aber da ergibt sowieso fast nix einen Sinn).

Jedenfalls verlangsamt es dein programm und ist bei dir sowieso komplett unnütz!


Also wie isn die genaue Exception und wo?


----------

