0

我正在尝试使用 MyBatis 从我的 Java 应用程序中操作 Oracle DB,但我是 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
4

1 回答 1

0

你能用吗

INSERT INTO TOTAL.T_OBSERVATION 

 instead of 
INSERT INTO T_OBSERVATION

在你的 Mapper.xml

类似问题请参考以下链接

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

于 2014-10-06T11:33:05.490 回答