こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

antでパラメータ付きsqlファイルを実行する方法。

antでパラメータ付きsqlファイルを実行する方法。

antでsqlタスクを利用する際、一部をパラメータにしたいのですが、sqlファイルにした場合に
どうすれば良いでしょうか?
SQL/PLUSの場合でいうと、sqlファイルに「&1」で記述するイメージです。

下記のbuild.xmlの transaction にある src に指定しているsqlファイルに引数を渡したい。
■bulid.xml(sqlタスクの部分)
<target name="test">
 <sql driver="${jdbc.driver}" url="${db.url}"
    userid="${db.username}" password="${db.password}"
    print="false" encoding="UTF-8" delimiter="/"
    delimitertype="row" keepformat="yes">
  <transaction src="./test.sql"/>
  <classpath refid="compile.classpath"/>
 </sql>
</target>

■test.sql
select '&1' as 引数の内容 from dual;

■期待する結果
渡す引数の内容が「TEST」だとした場合

引数の内容
---------
TEST


sqlファイルの書き方(パラメータ部分)、build.xmlの書き方、
その他の方法等ありましたら、ご教授下さい。
宜しくお願いします。

投稿日時 - 2010-05-19 14:49:05

QNo.5906171

すぐに回答ほしいです

質問者が選んだベストアンサー

antが読込むSQLファイルでも ${~~~} 形式のトークンの置換が出来るようです。
ant 1.7.1 で確認しました。

build.xml ---------------------------------------------------
<target name="test">
 <property name="arg_1" value="TEST" />
 <sql driver="${jdbc.driver}" url="${db.url}"
    userid="${db.username}" password="${db.password}"
    print="false" encoding="UTF-8" delimiter="/"
    delimitertype="row" keepformat="yes">
  <transaction src="./test.sql"/>
  <classpath refid="compile.classpath"/>
 </sql>
</target>
-------------------------------------------------------------

test.sql ----------------------------------------------------
select '${arg_1}' as 引数の内容 from dual;
-------------------------------------------------------------

参考URL:http://ant.apache.org/manual/CoreTasks/sql.html

投稿日時 - 2010-05-20 01:55:08

お礼

まさに、やりたいことができました!
ありがとうございます。

投稿日時 - 2010-05-20 14:20:37

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問