具有初始化部分的Oracle COMPOUND TRIGGER在Flyway中无法正常工作

时间:2013-05-22 08:29:31

标签: oracle11g flyway

我很乐意获得以下问题的支持:

如果我尝试将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;
/

==>这会导致以下异常: [错误] com.googlecode.flyway.core.api.FlywayException:第9行执行语句时出错:STATUS_VALID常数:= 1 [错误]由java.sql.SQLSyntaxErrorException引起:ORA-00900:UngültigeSQL-Anweisung

我用:

  • 飞路-行家-插件:2.1.1
  • Oracle 11gR2 11.2.0.3.0
  • Java 1.6.0_21-b07
  • Windows 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

1 个答案:

答案 0 :(得分:0)

我研究了飞路代码,它似乎不计算触发器可能有的;在宣布或开始陈述之前。

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

所以希望很快就能解决。