Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jdbc 如何使udaSQL像BTEQ一样工作_Jdbc_Ant_Teradata - Fatal编程技术网

Jdbc 如何使udaSQL像BTEQ一样工作

Jdbc 如何使udaSQL像BTEQ一样工作,jdbc,ant,teradata,Jdbc,Ant,Teradata,我有一些BTEQ文件,我想通过它迁移到udaSQL <udaSQL src="batch.sql" /> 问题是,BTEQ将语句分开,以便将它们逐个发送到teradata,包括隐式事务中的每个语句。这很好,因为其中许多都是DDL(创建为选择、删除、收集统计信息…),需要在单个事务中执行它们。 但是udaSQL收集孔文件,并尝试使用一个隐式事务在单个命令中发送它,当它找到DDL时失败 在这方面,可以在JDBC连接字符串级别通过一个选项对udaSQL进行调优:事务模式(TMOD

我有一些BTEQ文件,我想通过它迁移到udaSQL

 <udaSQL src="batch.sql" /> 

问题是,BTEQ将语句分开,以便将它们逐个发送到teradata,包括隐式事务中的每个语句。这很好,因为其中许多都是DDL(创建为选择、删除、收集统计信息…),需要在单个事务中执行它们。
但是udaSQL收集孔文件,并尝试使用一个隐式事务在单个命令中发送它,当它找到DDL时失败
在这方面,可以在JDBC连接字符串级别通过一个选项对udaSQL进行调优:事务模式(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>

放下桌子;
创建hugeselect作为50行的选择blah
放下桌上的食物;
放下桌子;

对于我的ANT文件的500行。

这种行为只适用于udasql标记中经过修饰的sql(我没有意识到)。使用src很好,udasql执行;逐个分隔查询