0

我很高兴获得对以下问题的支持:

如果我尝试将 PL/SQL 脚本与 COMPOUND 触发器和初始化部分集成,它将在第一个“;”之后被剪切 在初始化部分:

CREATE OR REPLACE TRIGGER MY_COMPOUND_TRIGGER
    FOR INSERT OR UPDATE OR DELETE
    ON COUNTRY
COMPOUND TRIGGER
--
-- Common or Initialization Section
--
    strProgPos          Varchar2(200) := 'START';
    STATUS_VALID        constant number := 1;

--
-- After Row Section
--
AFTER EACH ROW IS
BEGIN

END AFTER EACH ROW;
--
-- After Statement Section
--
AFTER STATEMENT IS
BEGIN

END AFTER STATEMENT;

END  MY_COMPOUND_TRIGGER;
/

==> 这会导致以下异常: [ERROR] com.googlecode.flyway.core.api.FlywayException: Error execution statement at line 9: STATUS_VALID constant number := 1 [ERROR] Caused by java.sql.SQLSyntaxErrorException: ORA- 00900: Ungültige SQL-Anweisung

我用:

  • flyway-maven-plugin:2.1.1
  • 甲骨文 11gR2 11.2.0.3.0
  • Java 1.6.0_21-b07
  • 视窗 7 64 位

这个接缝不是驱动问题,无论如何我尝试了以下驱动:

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.3</version>
</dependency>

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc14</artifactId>
    <version>10.2.0.3.0</version>
</dependency>

<dependency>
    <groupId>ojdbc</groupId>
    <artifactId>ojdbc</artifactId>
    <version>11.2.0.1.0</version>
</dependency>

<dependency>
    <groupId>ojdbc</groupId>    
    <artifactId>ojdbc</artifactId>
    <version>14</version>
</dependency>

对任何提示或建议会很高兴吗?

我还在flyway上为此创建了一个问题:https ://github.com/flyway/flyway/issues/487

4

1 回答 1

0

我研究了flyway代码,看起来它不包括触发器可能有;在声明或开始声明之前。

我建议修复: https ://github.com/cipous/flyway/commit/c7cf111f666ef417337edf3ac2410f6688abaf1f

所以希望它会尽快修复。

于 2013-05-23T13:27:47.373 回答