Java 如何将信息从ant传递到sql文件或过程

Java 如何将信息从ant传递到sql文件或过程,java,oracle,ant,Java,Oracle,Ant,我正在使用ant目标创建一个用户,如下所示 <target name="create_user"> <exec executable="sqlplus" dir="${basedir}/dbsetup"> <arg value="system/oracle@orcl"/> <arg value="@create_user.sql"/> </exec> </targ

我正在使用ant目标创建一个用户,如下所示

<target name="create_user">
     <exec executable="sqlplus" dir="${basedir}/dbsetup">
          <arg value="system/oracle@orcl"/>
          <arg value="@create_user.sql"/>
     </exec>    
</target>
目前,用户名是在
create\u user.sql中硬编码的
现在我想从ant中提示输入用户名和密码,并传递到sql文件


请告知我如何实现这一点,或者通过其他方式实现这一点。我为解决此问题所做的是创建一个包含令牌的模板sql文件。
我已经使用带有标记化的ant copy复制了模板,它创建了一个新文件,其中标记已被替换为提供的标记。
然后使用ant sql任务执行新副本。
如果需要,可以使用各种不同的令牌值重复此操作

对于提示,我使用了ant输入任务,它将输入的值分配给变量,

然后将变量设置为复制前的标记值。

一个选项是在sql文件中使用&1位置参数,例如:

create user &1 identified by password;
使用ant输入任务提示输入用户名,然后将该值作为参数传递给目标中的sqlplus:

  <exec executable="sqlplus" failonerror="true">
        <arg value="${userid}/${password}@${tnsalias}"/>
        <arg value="yourFileNameGoesHere/>
        <arg value="theUserNameFromPromptGoesHere"/>
  </exec>

  <exec executable="sqlplus" failonerror="true">
        <arg value="${userid}/${password}@${tnsalias}"/>
        <arg value="yourFileNameGoesHere/>
        <arg value="theUserNameFromPromptGoesHere"/>
  </exec>