2

私はplay 1.2.5で作業しています。

Oracle 11g Release 2 で db 進化システムを使用したい。

しかし、複数行のリクエストがある場合、

# --- 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 に答える