如何将sql查询的输出读入ant属性?

zak*_*vdm 8 sql ant

我想提供一个简单的SQL查询的结果(类似于:) select SP_NUMBER from SERVICE_PACK,我在我的ant脚本(使用sql任务)中运行回到ant属性(例如service.pack.number).

sql任务可以输出到文件,但有一个更直接的方式?

zak*_*vdm 9

虽然我宁愿不创建文件,但最终还是采用了以下解决方案:

sql任务调用如下

<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>
Run Code Online (Sandbox Code Playgroud)

生成的属性文件将包含:

current.sp.version=03

current.major.version=5
Run Code Online (Sandbox Code Playgroud)

然后你只需加载属性文件并删除它:

<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}" />
Run Code Online (Sandbox Code Playgroud)

这是有效的,一切都在蚂蚁脚本中(即使它不是世界上最漂亮的东西!).