Bonjour,
Je me prends la tête depuis ce matin.
J'ai une servlet qui appelle une fonction qui exécute une requête SQL SELECT , mais j'ai une erreur "Index de colonne non valide".
Je ne comprends pas, le nom de la colonne que je vise est bonne...
Voici le code du Select :
et la table en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 public static Vector<Motrice> readMot (Connection conn, String mot) throws SQLException { Vector<Motrice> readMot = new Vector <Motrice>(); try { System.out.println(mot); pstateMot = conn.prepareStatement("SELECT * FROM MOTRICE WHERE MOT_ID like '?' "); pstateMot.setString(1, mot); rsMot = pstateMot.executeQuery(); } catch(SQLException sqlE) { System.out.println("SQL ERREUR : " + sqlE.getMessage()); if( rsMot != null ) rsMot.close(); if( pstateMot != null ) pstateMot.close(); return null; } catch(Exception e) { System.out.println("ERREUR : " + e.getMessage()); if( rsMot != null ) rsMot.close(); if( pstateMot != null ) pstateMot.close(); return null; } try { Motrice req = null; while ( rsMot.next() ) { req = new Motrice(); req.setMOT_ID(rsPass.getString("MOT_ID")); req.setMOT_LABEL(rsPass.getString("MOT_LABEL")); req.setMOT_RFID(rsPass.getString("MOT_RFID")); req.setMOT_LONGUEUR(rsPass.getInt("MOT_LONGUEUR")); readMot.add( req ); } rsMot.close(); pstateMot.close(); } catch(Exception e) { System.out.println( "Exception " + e.getMessage() ); if( rsMot != null ) rsMot.close(); if( pstateMot != null ) pstateMot.close(); return null; } return readMot; }
La fonction "readMot" à pour paramêtre la connection (qui est bonne) et un String "mot" qui reçoit comme valeur "MOT1" ou "MOT2" de la part de la servlet. Les valeurs arrivent bien dans la fonction, j’ai vérifié avec un System.out.print() juste avant le prepareStatement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 CREATE TABLE "TRAIN"."MOTRICE" ( "MOT_ID" VARCHAR2(20 BYTE), "MOT_LABEL" VARCHAR2(20 BYTE), "MOT_RFID" VARCHAR2(20 BYTE), "MOT_LONGUEUR" NUMBER ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "SYSTEM" ; REM INSERTING into SYSTEM.MOTRICE SET DEFINE OFF; Insert into SYSTEM.MOTRICE (MOT_ID,MOT_LABEL,MOT_RFID,MOT_LONGUEUR) values ('MOT1','MOTRICE1','221225174118','200'); Insert into SYSTEM.MOTRICE (MOT_ID,MOT_LABEL,MOT_RFID,MOT_LONGUEUR) values ('MOT2','MOTRICE2','124578992653','350');
Voyez-vous d’où peut venir l'erreur ??
Partager