<target name="create-db-tables" depends="initialize">
<fail message="Missing property [datasource.url]." unless="datasource.url" />
<fail message="Missing property [db.user]." unless="db.user" />
<fail message="Missing property [db.password]." unless="db.password" />
<fail message="Missing property [db.sql.driver]." unless="db.sql.driver" />
<sql driver="${db.sql.driver}" url="${datasource.url}" userid="${db.user}" password="${db.password}" output="${basedir}/createTable.log" onerror="continue">
<classpath>
<pathelement location="${basedir}/../lib/ojdbc.jar"/>
</classpath>
<transaction src="${basedir}/ddl/dropTables.sql" />
<transaction src="${basedir}/ddl/createTables.sql" />
</sql>
</target>
上記のターゲットを ant スクリプトで定義しています。これは、最初にテーブルを削除してから作成します。テーブルをドロップするときのエラー (つまり onerror="continue") を無視し、テーブルの作成中にエラーが発生したときに例外 (つまり onerror="abort") をスローするようにします。ただし、「sql」タグでトランザクションの動作を行うため、すべてのトランザクションに共通です。
個別の SQL タグを作成して DB の詳細を繰り返したくありません。また、ファイルを介してSQLを実行したい。どうすればアリを通してそれを行うことができますか?