2014-03-06 35 views

回答

1

嘗試 字符串CN = 「的jdbc:ODBC:DSN; TYPE = FASTLOAD」;

+0

它shud是;不,:) –

3

Teradata的JDBC驅動程序支持FastLoad協議,但您沒有使用它。您嘗試通過JDBC-ODBC橋連接,更改爲jdbc:teradata:// ...

0

如果要使用ODBC連接,請使用分號。但是,如果你想使用FastLoad,那麼你需要使用JDBC連接,在這種情況下,你應該使用逗號和斜槓,像這樣:

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

此外,你需要禁用自動提交,你只要快速加載(至少如果你做批量插入,你可能應該)。 Fastload需要一個空表;提交導致該表非空。爲了防止這個問題,在插入之前簡單地將autocommit設置爲False,並且在所有插入已經被執行和提交之後將其設置回True(或者任何你想要的)。

或者,你可以採用不同的方法:提交東西,但使用登臺表。使用這種方法,您可以爲每個批次創建新的空表格。最後,您可以使用MERGE操作將這些表合併成一個表。如果您正確執行此過程,則可以避免在磁盤上重寫任何數據。 (來源:this other SO question

的更多信息: