我的連接字符串看起來像這樣如何爲jdbc指定Fastload實用程序:odbc?
String cn = "jdbc:odbc:DSN";
它工作正常。然而,當我嘗試修改它 String cn = "jdbc:odbc:DSN, TYPE=FASTLOAD";
它不建立連接
我也試過 String cn = "jdbc:odbc:DSN, TYPE=FASTLOADCSV";
我的連接字符串看起來像這樣如何爲jdbc指定Fastload實用程序:odbc?
String cn = "jdbc:odbc:DSN";
它工作正常。然而,當我嘗試修改它 String cn = "jdbc:odbc:DSN, TYPE=FASTLOAD";
它不建立連接
我也試過 String cn = "jdbc:odbc:DSN, TYPE=FASTLOADCSV";
嘗試 字符串CN = 「的jdbc:ODBC:DSN; TYPE = FASTLOAD」;
Teradata的JDBC驅動程序支持FastLoad協議,但您沒有使用它。您嘗試通過JDBC-ODBC橋連接,更改爲jdbc:teradata:// ...
如果要使用ODBC連接,請使用分號。但是,如果你想使用FastLoad,那麼你需要使用JDBC連接,在這種情況下,你應該使用逗號和斜槓,像這樣:
String cn = "jdbc:teradata://servername/TYPE=FASTLOADCSV";
此外,你需要禁用自動提交,你只要快速加載(至少如果你做批量插入,你可能應該)。 Fastload需要一個空表;提交導致該表非空。爲了防止這個問題,在插入之前簡單地將autocommit設置爲False,並且在所有插入已經被執行和提交之後將其設置回True(或者任何你想要的)。
或者,你可以採用不同的方法:提交東西,但使用登臺表。使用這種方法,您可以爲每個批次創建新的空表格。最後,您可以使用MERGE操作將這些表合併成一個表。如果您正確執行此過程,則可以避免在磁盤上重寫任何數據。 (來源:this other SO question)
的更多信息:
它shud是;不,:) –