МУРАВЕЙ sql задача: Как выполнить SQL и МН / SQL и отказ выполнения уведомления?

для выполнения .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}"
    src="@{db.sql.script}" />

Но если .sql файл не только будет содержать чистый SQL, но также и МН / 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}" />

Но если мой сценарий будет содержать и SQL и МН / SQL затем, то никакая задача Ant не будет работать. Другое решение состояло бы в том, чтобы использовать "исполнительную" задачу с "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>

Но к сожалению эта задача никогда не перестанет работать, следовательно сборка всегда возвращается с "УСПЕШНЫМ" даже при том, что sql выполнение сценария перестало работать. Ошибочное свойство, которое я пытался установить, не возвратит кода ошибки.

Какие-либо идеи/предложения, как решить эту проблему?

Спасибо,

Peter

15
задан Peter 29 July 2010 в 14:11
поделиться