特定の時点でオブジェクトを Sybase データベースにインストールするビルドファイルを作成しました。
コードは開発者によって提供され、変更することはできません。isql
コマンドを使用して指定された SQL を手動で実行すると、機能します。
これは、特定のオブジェクトをインストールするビルドファイルの一部です。
<sql
driver="${db.driver}" url="${db.url}" userid="${db.user}"
password="${db.password}" src="${file}"
print="true" delimiter="go" delimitertype="row"
classpathref="sybase.lib.path" output="${file}.out"
errorproperty="install.failed" onerror="continue" keepformat="true" />
ほとんどの場合、解決策は機能しますが、二重引用符 (") を含むスクリプトを実行しようとすると、毎回失敗します。
たとえば、SQL スクリプトに次のようなものが含まれているとします。
declare @var varchar(30)
set @var = "SOME STRINGS"
次のエラーで失敗します。
[sql] com.sybase.jdbc3.jdbc.SybSQLException: Invalid column name 'SOME STRINGS'.
誰かがこの問題を解決しましたか?
Ant sql
taskのドキュメントを読みました。Ant バージョン 1.8.2 を使用しています。
次の jdbc ドライバーでテストしました。
- com.sybase.jdbc3.jdbc.SybDriver
- net.sourceforge.jtds.jdbc.Driver