для выполнения файла .sql script из ANT он отлично работает, используя следующую задачу:
<sql
classpath="${oracle.jar}" driver="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@@@{db.hostname}:@{db.port}:@{db.sid}"
userid="@{db.user}"
password="@{db.password}"
src="@{db.sql.script}" />
Но если файл .sql не только содержит чистый SQL, но также PL/SQL, задача будет терпеть неудачу. Это можно решить, используя следующий фрагмент:
<sql
classpath="${oracle.jar}" driver="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@@@{db.hostname}:@{db.port}:@{db.sid}"
userid="@{db.user}"
password="@{db.password}"
delimiter="/"
delimitertype="row"
src="@{db.sql.script}" />
Но если мой script содержит как SQL , так и PL/SQL, то ни одна из задач ANT не будет работать. Другим решением было бы использовать задачу "exec" с "sqlplus":
<exec executable="sqlplus" failonerror="true" errorproperty="exit.status">
<arg value="${db.user}/${db.password}@${db.hostname}:${db.port}/${db.sid}"/>
<arg value="@${db.sql.script}"/>
</exec>
Но, к сожалению, эта задача никогда не сработает, поэтому сборка всегда возвращается с "SUCCESSFUL", хотя выполнение sql script завершилось с ошибкой. Свойство error, которое я пытался установить, не будет возвращать код ошибки.
Любые идеи/предложения по решению этой проблемы?
Спасибо,
Петр