【发布时间】:2016-06-22 12:57:19
【问题描述】:
以下是触发器:
CREATE OR REPLACE TRIGGER "CMDC"."USER_ROADS_UC"
BEFORE INSERT OR UPDATE OF
ASSOCIATED_PARENT_ROAD
ON USER_ROADS
REFERENCES NEW AS NEW
FOR EACH ROW BEGIN
:new.ASSOCIATED_PARENT_ROAD:=upper(:new.ASSOCIATED_PARENT_ROAD);
EXCEPTION
WHEN OTHERS THEN RETURN;
END;
/
ALTER TRIGGER "CMDC"."USER_ROADS_UC" ENABLE
以上内容在 SQL Developer 中完美运行。但是,当我使用 Ant 运行它时出现以下错误:
[sql] Failed to execute: EXCEPTION WHEN OTHERS THEN RETURN
[sql] java.sql.SQLException: ORA-00900: invalid SQL statement
[sql] Failed to execute: END
[sql] java.sql.SQLException: ORA-00900: invalid SQL statement
[sql] Failed to execute: / ALTER TRIGGER "CMDC"."USER_ROADS_UC" ENABLE
[sql] java.sql.SQLException: ORA-00900: invalid SQL statement
我已经查看了this question。但是,我仍然无法修改脚本以使用 Ant。
下面是蚂蚁目标
<target name="create-db-schema" >
<echo message="############################################################"/>
<echo message="# Create Complete DB Schema #"/>
<echo message="############################################################"/>
<sql onerror="continue" classpathref="project.class.path" driver="${database.driverClassName}"
url="${database.url}" userid="${database.username}" password="${database.password}">
<path>
<fileset dir="${test.dbscripts.dir}/schema/">
<include name="*.sql"/>
</fileset>
</path>
</sql>
</target>
【问题讨论】:
-
如果在
ALTER TRIGGER语句的结尾加上分号和/或/有什么不同吗?如果您删除ALTER TRIGGER语句并将其作为单独的语句放入新调用中会怎样? -
但是你是如何定义你的 ant 任务的呢?您是否设置了
delimiter、delimitertype行? check this -
@ArkadiuszŁukasiewicz,您介意展示相关的构建脚本吗?你试过
-debug选项吗? -
看起来你正在一起执行 pl/sql 和 sql,this 可能会有所帮助
-
@Rao 我已经尝试将分隔符添加到
但仍然给出相同的错误:(