我有一个带有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;
答案 0 :(得分:1)
也许您遇到分隔符问题?请查看http://www.liquibase.org/documentation/changes/sql_file.html
中的endDelimiter
属性
您可以将endDelimiter设置为';;'并确保CREATE TRIGGER语句后跟';;'