如何使用 Ant 运行包含设置定义关闭的 SQL 文件



我有这个dbobject.file,它反过来调用了几个dml,ddl和prcs。 我正在尝试使用 ant 执行此文件,但它只需要 sql 语句,为设置定义和假脱机抛出错误。它正在使用sqlplus工作,但我想使用ant运行,因此调用此dbobject文件应该执行dmls和ddls。

set define off
spool dbobjects.log
prompt calling D:Pst1Inteltagtxt1.dml
@"D:Pst1Inteltagtxt1.dml"
prompt calling D:PstInteltagtxt2.dml
@"D:PstInteltagtxt2.dml"
set define on

提前谢谢。

从你问题的声音听起来,你似乎在试图弄清楚如何将Oracle sqlplus脚本转换为SQL Ant任务。

spoolset都不是 SQL 命令,它们不会影响服务器,而是更改 sqlplus 在本地的运行方式。所以在蚂蚁的背景下,它们没有任何意义。如果要在脚本中打印结果,则可以使用 output= 属性执行大致类似的操作。

如果您正在将sqlplus脚本转换为Ant,我希望它看起来像这样:

<sql driver="org.database.jdbcDriver" url="jdbc:database-url" userid="sa" password="pass"
    src="txt1.dml"
    output="dbobjects.log" />
<sql driver="org.database.jdbcDriver" url="jdbc:database-url" userid="sa" password="pass"
    src="txt2.dml"
    output="dbobjects.log"
    append="true" />

这会针对数据库执行 txt1.dml 和 txt2.dml 作为一组 SQL 文件,并将生成的任何结果集保存到 dbobjects.log 中。

这可能并非在所有情况下都有效,特别是如果您依赖 sqlplus 提供的任何内容,例如报表格式或嵌套导入。在这种情况下,您需要重写源文件以仅包含 SQL。

最新更新