後はトリガーです:Apache Antを持つSQLを実行してエラーではなく、OracleのSQL Developerの
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で動作するようにスクリプトを変更することはできませんでした。
アリSQLタグ付き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'文を削除し、それを新しい呼び出しで別の文として挿入するとどうでしょうか? –
しかし、どのようにあなたのアリタスクを定義しましたか? 'delimiter'、' delimitertype'の行を設定しましたか? [これをチェック](https://technology.amis.nl/2005/08/08/ant-and-stored-procedures-and-dbms_output/) –
@ArkadiuszŁukasiewicz、関連するビルドスクリプトを表示してもよろしいですか? '-debug'オプションを試しましたか? – Rao