【发布时间】:2017-06-19 23:03:39
【问题描述】:
我有一些 BTEQ 文件,我想通过这些文件迁移到 udaSQL
<udaSQL src="batch.sql" />
问题是,BTEQ 将语句分开,以便将它们一一发送到 teradata,包括在隐式事务中的每一个。这很好,因为其中许多是 DDL(CREATE AS SELECT、DROP、COLLECT STATISTICS...)并且它们需要在单个事务中执行。
但是 udaSQL 收集漏洞文件并尝试在单个命令中使用隐式事务发送它,当它找到 DDL 时会失败。
udaSQL 可以通过一个选项在 JDBC 连接字符串级别进行调整:事务模式 (TMODE=ANSI/TERA)。设置 ANSI 模式并没有帮助,而且我认为如果它有效,这不是一个好的选择,为工作脚本更改它的副作用是可怕的。
有什么解决方法吗?修改脚本会很好,比如在 DDL 之后放置一个“ET”或一个额外的分号(这不起作用)我想要的是整个批次在单独的单个文件中。我不想要像
<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 行。
【问题讨论】: