我有这个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任务。
spool
和set
都不是 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。