2

我使用 play 1.2.5,

我想将 db evolution 系统与 oracle 11g Release 2 一起使用。

但是当我有一个多行请求时,

# --- la table champ pointe directement sur la table categorie (pas de relation n, n )

# --- !Ups

    DROP TABLE CATEGORIE_CHAMP;
    ALTER TABLE CHAMP ADD (ID_CATEGORIE  NUMBER(38));
    ALTER TABLE CHAMP ADD CONSTRAINT FK_CHAMP_CATEGORIE FOREIGN KEY (ID_CATEGORIE) REFERENCES CATEGORIE(ID_CATEGORIE);

# --- !Downs
  CREATE TABLE "CATEGORIE_CHAMP" 
   (    "ID_CATEGORIE" NUMBER(38,0), 
    "ID_CHAMP" NUMBER(38,0), 
     CONSTRAINT "Categorie_Champ PK" PRIMARY KEY ("ID_CHAMP", "ID_CATEGORIE")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS NOCOMPRESS LOGGING
  TABLESPACE "USERS"  ENABLE, 
     CONSTRAINT "CATEGORIE_CHAMP_CATEGORIE" FOREIGN KEY ("ID_CATEGORIE")
      REFERENCES "RENTIT"."CATEGORIE" ("ID_CATEGORIE") ENABLE, 
     CONSTRAINT "CATEGORIE_CHAMP_CHAMP" FOREIGN KEY ("ID_CHAMP")
      REFERENCES "RENTIT"."CHAMP" ("ID_CHAMP") ENABLE
   ) SEGMENT CREATION DEFERRED 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  TABLESPACE "USERS" ;

 ALTER TABLE CHAMP DROP COLUMN ID_CATEGORIE;

此请求不起作用并产生问题:

ORA-00911: caractère non valide
[ERROR:911, SQLSTATE:22019]
 invalid character. The character is the ;.

多行请求的解决方案是什么?

4

1 回答 1

0

有关我已解决问题的信息,我更改了 play.db.SQLSplitter 类。

我已经更改了以下的 ligne 195 和 196:

++i;
CharSequence ret = sql.subSequence(prev, i);

在 :

CharSequence ret = sql.subSequence(prev, i);
++i;

所以最后; 未使用,并且请求工作。

于 2013-02-19T12:57:07.043 回答