db2使用ant脚本执行触发器

时间:2013-08-05 07:37:31

标签: triggers db2

我有一个包含触发器的sql文件。我想使用Ant脚本执行此文件:

<target name="exec-sql-proc_db2" depends="init">
  <property name="project.sql.dir" value="${project.metadata.dir}/sql" />
  <property name="triggerFile" value="${project.sql.dir}/triggers_db2.sql" />
  <echo message="${triggerFile}" />
  <sql rdbms="DB2" driver="com.ibm.db2.jcc.DB2Driver" 
       url="jdbc:db2://localhost:50000/project:currentSchema=mySchema;" 
       userid="root" password="root" 
       classpath="C:\projects\myProject\lib\db2jcc.jar" 
       src="${triggerFile}" 
       onerror="${sql.onerror}" 
       keepformat="true" delimiter="/" />
</target>

我的构建成功,但触发器没有被执行! 还有其他解决方案吗?

我的触发器是:

CREATE or REPLACE TRIGGER PRODUCT_HISTORY_AFTER_UPDATE
AFTER UPDATE ON PRODUCT 
REFERENCING NEW AS N 
FOR EACH ROW 
BEGIN 
   INSERT INTO productHistory ( id_h, id_product , name) values (id_h_seq.nextval, N.id_product , N.name ); 

    END 
/

1 个答案:

答案 0 :(得分:1)

<sql rdbms="DB2" driver="com.ibm.db2.jcc.DB2Driver" 
       url="jdbc:db2://localhost:50000/project:currentSchema=mySchema;" 
       userid="root" password="root" 
       classpath="C:\projects\myProject\lib\db2jcc.jar" 
       src="${triggerFile}" 
       onerror="${sql.onerror}" 
        delimiter="/" >

SET SCHEMA mySchema
</sql>

我尝试了这部分代码,解决了我的问题