SQL在Oracle中工作正常,但在mybatis映射器xml中工作不正常?

时间:2018-11-12 06:05:34

标签: java spring mybatis

我正在开发一种方法,用户可以根据现有表动态生成新表。我正在使用Java,myBatis和spring,并且需要在映射器xml中包含sql。如下所示:

<update id="createTable" parameterType="list"  >
    CREATE TABLE PERSON_GENOTYPE
    ( ID NUMBER(10) NOT NULL,
    ID_CARD_NO VARCHAR2(50) NOT NULL,
    GENOTYPE VARCHAR2(50),
    CREATE_DATETIME DATE,
    ETHNICITY VARCHAR2(5),
    <foreach collection="list" item="locus" separator=","  close="," >
    #{locus} VARCHAR2(50)
    </foreach>
    CONSTRAINT PERSON_GENOTYPE_PK PRIMARY KEY (ID)
    )
</update>

我确定参数列表不为空,并且具有正确的值。它以某种方式给了我ORA-00904:

> SQL:
 CREATE TABLE PERSON_GENOTYPE
  (
    ID              NUMBER(10) NOT NULL,
    ID_CARD_NO      VARCHAR2(50) NOT NULL,
    GENOTYPE        VARCHAR2(50),
    CREATE_DATETIME DATE,
    ETHNICITY       VARCHAR2(5),
    ?               VARCHAR2(50) ,
    ?               VARCHAR2(50) ,
    CONSTRAINT PERSON_GENOTYPE_PK PRIMARY KEY (ID)
  )

我用Oracle中的实际值替换了?,它工作正常。映射器不起作用,我也不知道为什么。

更新:我删除了它,并且它起作用了,所以我怀疑问题与有关。该列表是字符串btw的arrayList。

0 个答案:

没有答案