Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Java + Oracle, ROWID type issue

2768939Oct 7 2014 — edited Oct 7 2014

Hello

I'm trying to use MyBatis to manipulate an Oracle database with Java but i'm a complete beginner with Oracle...

Here's the Oracle tab:

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)

)

Then I create a java object which attributes correspond to the columns :

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;

And finally I build the sql query in my Mapper.xml file :

INSERT INTO TOTAL.T_OBSERVATION(IDOBSERVATION)

    IDENGIN,

    ID_MESSAGEBALISE,

    DATEOBSERVATION,

    X,

    Y,

    ECARTHORAIRE,

    ECARTTRAJECT,

    TYPE_OBSERVATION,

    FIABILITE,

    VITESSE,

    CAP,

    NOTRAINSUIVI,

    NOTRAINCOMP,

    ETATALIM,

    USER_INTERRO,

    STATUT_TRAIN,

    STATUT_ECART_HORAIRE,

    STATUT_ECART_ITINERAIRE,

    STATUT_RECURRENCE,

    STATUT_DEPLACEMENT,

    STATUT_FIABILITE_NULLE,

    STATUT_SUSPENSION)

    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})

But the problem I have is that a ROWID object is returned somewhere instead of a number and I can't figure ouut why.

java.sql.SQLSyntaxErrorException: ORA-00932: inconsistent datatypes: expected NUMBER got ROWID


I also tried to build my query inserting only the primary key but then i have another error :

### SQL: INSERT INTO TOTAL.T_OBSERVATION(IDOBSERVATION)           VALUES(SEQ_OBSERV.nextval)

### Cause: org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object. Cause: java.sql.SQLException: Type de colonne non valide: getInt not implemented for class oracle.jdbc.driver.T4CRowidAccessor

I'm stuck, can someone help me?


Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 4 2014
Added on Oct 7 2014
1 comment
583 views