Index de colonne non valide

Armelkev Messages postés 100 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 5 août 2020 - 18 juin 2010 à 13:05
Armelkev Messages postés 100 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 5 août 2020 - 18 juin 2010 à 19:01
Salut les gars,
lorsque je lance ma requête sql, j'obtiens cette exception: Index de colonne non valide.
Mon code est le suivant:

Connection conn =null;
Class.forName("oracle.jdbc.OracleDriver")
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.60:1521:devl", "biotech", "ops2010");
System.out.println("Connexion base de données");

String location = "D:\\OPS\\MegaMatcher\\imageproj1.jpg";
File file = new File(location);
FileInputStream image = new FileInputStream(file);
String sql = "insert into BIOMETRIE (TEMPLATE,EN_ID) values (?)";
PreparedStatement inst = null;
inst = conn.prepareStatement(sql);
inst.setBinaryStream(1, image, (int)file.length());
inst.setInt(7, 1);
inst.executeUpdate();
System.out.println("Données inserées dans la table BIOMETRIE");

Ma table a 7 champs. le 1er champ est TEMPLATE, le 7ème champ est EN_ID.
A voir également:

2 réponses

HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
18 juin 2010 à 18:34
Bonjour,

Si tu regardes ici

La position du setInt correspond à la position du caractère "?"

Par exemple:
insert into maTable (col1, col2)  values (?,?)

nécessite de passer les valeurs de la façon suivante :
inst.setInt(1, value1);
inst.setString(2, value2);


Ici, ton inst.setInt(7,1) essaie de passer la valeur 1 au caractère ? en position 7 qui n'existe donc pas.
Il faudrait donc que ça soit :

String sql = "insert into BIOMETRIE (TEMPLATE, EN_ID) values (?, ?)"; 
PreparedStatement inst = null; 
inst = conn.prepareStatement(sql); 
inst.setBinaryStream(1, image, (int)file.length()); 
inst.setInt(2, 1); 


Fanny
0