如何让udaSQL像BTEQ一样运行

时间:2017-02-02 18:23:52

标签: jdbc ant teradata

我有一些BTEQ文件,我想通过

迁移到udaSQL
 <udaSQL src="batch.sql" /> 

问题是,BTEQ将语句分开,以便将它们逐个发送到teradata,包括隐式事务中的每一个。这很好,因为它们中的很多都是DDL(CREATE AS SELECT,DROP,COLLECT STATISTICS ......),它们需要在一次交易中执行。
但是udaSQL收集漏洞文件并尝试使用隐式事务在单个命令中发送它,当它找到DDL时失败。
udaSQL可以在JDBC连接字符串级别使用一个选项进行调整:事务模式(TMODE = ANSI / TERA)。设置ANSI模式没有帮助,我认为它不是一个好的选择,如果它有效,改变工作脚本的副作用是可怕的。
有没有解决方法?修改脚本会很好,比如放一个&#34; ET&#34;或DDL之后的一个额外的分号(它没有工作)我想要的是整个批处理单独的文件。我不想要像

这样的恐怖
<udaSQL>
DROP TABLE blah;
</udaSQL>
<udaSQL>
CREATE hugeselect AS SELECT blah for 50 lines
</udaSQL>
<udaSQL>
DROP TABLE foo;
</udaSQL>
<udaSQL>
DROP TABLE blah;
</udaSQL>

我的ANT文件的500行。

1 个答案:

答案 0 :(得分:0)

该行为仅适用于udasql标记中的embbeded sql(我没有意识到)。使用src很好,udasql执行;一个接一个地分隔查询。