Grails Migrations插件创建触发器

时间:2013-12-18 21:43:28

标签: sql oracle grails liquibase

我有一个带有DML Trigger创建的SQL文件,我作为SQL脚本运行。但是,我想在我的Grails数据库迁移更改日志中包含它。我使用changelog(使用sqlFile标记)运行所有其他SQL脚本。当我使用我的触发器sql文件执行相同的过程时,我得到各种无效的sql语句错误(“end;”上的sql语句无效)。

由于触发器的PL / SQL特性,是否存在问题?如果是这样,我该如何解决这个问题?

这是我正在尝试运行的语句类型:

   CREATE OR REPLACE TRIGGER "A_HST"
     BEFORE
       delete or update
         on TableA
     for each row
       begin
          insert into A_history
            ( ID,
            VERSION,
            COMMENTS,
            description,
            NAME,
            UPDATEDBY_ID)
   values
     ( :old.id,
        :old.VERSION,
        :old.comments,
        :old.description,
        :old.name,
        :old.UPDATEDBY_ID);
    end; 

/

ALTER TRIGGER“A_HST”ENABLE;

1 个答案:

答案 0 :(得分:1)

也许您遇到分隔符问题?请查看http://www.liquibase.org/documentation/changes/sql_file.html

中的endDelimiter属性

您可以将endDelimiter设置为';;'并确保CREATE TRIGGER语句后跟';;'