Bonjour,

Je suis actuellement en stage de développement Java et il faut que mon appli puisse manipuler une BDD Oracle à l'aide du framework MyBatis. Et comme j'ai jamais touché à ça avant, je suis en train d'apprendre à la dure

La table que je dois remplir possède ces colonnes :
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
 
CREATE TABLE TOTAL.T_OBSERVATION
(
  IDOBSERVATION            NUMBER               NOT NULL,
  IDENGIN                  NUMBER,
  ID_MESSAGEBALISE         NUMBER,
  DATEOBSERVATION          DATE,
  X                        FLOAT(126),
  Y                        FLOAT(126),
  ECARTHORAIRE             FLOAT(126),
  ECARTTRAJECT             FLOAT(126),
  TYPE_OBSERVATION         NUMBER(3),
  FIABILITE                FLOAT(126),
  VITESSE                  FLOAT(126),
  CAP                      FLOAT(126),
  NOTRAINSUIVI             VARCHAR2(10 BYTE),
  NOTRAINCOMP              VARCHAR2(10 BYTE),
  ETATALIM                 NUMBER,
  USER_INTERRO             NUMBER,
  STATUT_TRAIN             NUMBER(1),
  STATUT_ECART_HORAIRE     NUMBER(1),
  STATUT_ECART_ITINERAIRE  NUMBER(1),
  STATUT_RECURRENCE        NUMBER(1),
  STATUT_DEPLACEMENT       NUMBER(1),
  STATUT_FIABILITE_NULLE   NUMBER(1),
  STATUT_SUSPENSION        NUMBER(1)
)
Ensuite je déclare en Java un objet qui possède un attribut pour chaque colonne :
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
public class Msg {
 public int IdObservation;
 public int IdEngin;
 public int IdMsgBalise;
 public String DateObs;
 public float X;
 public float Y;
 public float EcartHoraire;
 public float EcartTrajet;
 public int TypeObs;
 public float Fiabilite;
 public float Vitesse;
 public float Cap;
 public String NoTrainSuivi;
 public String NoTrainComp;
 public int EtatAlim;
 public int UserInterro;
 public int StatutTrain;
 public int StatutEcartHoraire;
 public int StatutEcartItineraire;
 public int StatutRecurrence;
 public int StatutDeplacement;
 public int StatutFiabiliteNulle;
 public int StatutSuspension;
Et enfin je construis ma requète en récupérant les attributs de l'objet :
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
INSERT INTO T_OBSERVATION
    VALUES(SEQ_OBSERV.nextval, 
			#{IdEngin},
			#{IdMsgBalise},
			TO_DATE('#{DateObs}','dd/mm/yyyy hh24:mi:ss'),
			#{X},
			#{Y},
			#{EcartHoraire},
			#{EcartTrajet},
			#{TypeObs},
			#{Fiabilite},
			#{Vitesse},
			#{Cap},
			#{NoTrainSuivi},
			#{NoTrainComp},
			#{EtatAlim},
			#{UserInterro},
			#{StatutTrain},
			#{StatutEcartHoraire},
			#{StatutEcartItineraire},
			#{StatutRecurrence},
			#{StatutDeplacement},
			#{StatutFiabiliteNulle},
			#{StatutSuspension})
Et enfin, Eclipse me sort cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.sql.SQLSyntaxErrorException: ORA-00932: inconsistent datatypes: expected NUMBER got ROWID
C'est là que j'ai besoin d'aide car après quelques recherches je ne comprends toujours pas ce qu'est un ROWID, ni comment j'ai pu en envoyer un à ma table