How can I read output of an sql query into an ant property?

ant, sql

Solution

Although I would have preferred not creating a file, I eventually went with the following solution:

The sql task is called as follows

<sql ... print="yes" output="temp.properties"
        expandProperties="true" showheaders="false" showtrailers="false" >
        <![CDATA[
        select 'current.sp.version=' || NAME from SERVICE_PACK;
        select 'current.major.version=' || NAME from VERSION;
        ]]>
</sql>

The generated properties file will contain:

current.sp.version=03

current.major.version=5

Then you just load the properties file and delete it:

<property file="temp.properties" />
<delete file="temp.properties" />

<echo message="Current service pack version: ${current.sp.version}" />
<echo message="Current major version: ${current.major.version}" />

This works, and everything is right there in the ant script (even if it's not the prettiest thing in the world!).

Problem

I would like to feed the result of a simple SQL query (something like: `select SP_NUMBER from SERVICE_PACK`) which I run inside my ant script (using the `sql` task) back into an ant property (e.g. `service.pack.number`). The `sql` task can output to a file, but is there a more direct way?

Original source