Java+Oracle,ROWID类型问题



我正试图使用MyBatis从我的Java应用程序中操作Oracle数据库,但我完全是Oracle的初学者。。。

这是Oracle选项卡:

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

然后我创建一个Java对象,其属性对应于表的列:

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;

最后,我在Mapper.xml文件中创建了SQL查询:

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

但问题是,查询在某个地方返回了一个ROWID对象,我无法弄清楚它是什么以及它来自哪里。

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

你能使用吗

INSERT INTO TOTAL.T_OBSERVATION 
 instead of 
INSERT INTO T_OBSERVATION

在Mapper.xml 中

有关类似问题的,请参阅下面的链接

https://community.oracle.com/thread/544427

相关内容

  • 没有找到相关文章