如何为jdbc指定Fastload实用程序:odbc?

时间:2014-03-06 16:40:31

标签: java teradata

我的连接字符串如下所示

String cn = "jdbc:odbc:DSN"; 它工作正常。但是,当我尝试将其修改为 String cn = "jdbc:odbc:DSN, TYPE=FASTLOAD"; 它没有建立连接

我也试过了 String cn = "jdbc:odbc:DSN, TYPE=FASTLOADCSV";

3 个答案:

答案 0 :(得分:3)

Teradata的JDBC驱动程序支持FastLoad协议,但您没有使用它。您尝试通过JDBC-ODBC桥连接,更改为 jdbc:teradata:// ...

答案 1 :(得分:1)

尝试 String cn =“jdbc:odbc:DSN; TYPE = FASTLOAD”;

答案 2 :(得分:0)

如果要连接ODBC,请使用分号。但是如果你想使用FastLoad,那么你需要使用JDBC连接,在这种情况下你应该使用逗号和正斜杠,如下所示:

String cn = "jdbc:teradata://servername/TYPE=FASTLOADCSV";

此外,您需要在快速加载时禁用自动提交(至少如果您进行批量插入,您可能应该这样做)。 Fastload需要一个空表;提交会导致表非空。要防止该问题,只需在插入之前将autocommit设置为False,并在执行并提交所有插入后将其设置回True(或任何您想要的)。

或者,您可以采用不同的方法:提交内容,但使用临时表。使用此方法,您可以为每个插入批处理创建新的空表。最后,您可以使用MERGE操作将这些表合并为一个表。如果您正确执行此过程,则可以避免重写磁盘上的数据。 (来源:this other SO question

更多信息: