這是我FULL測試代碼的主要方法:如何向setAsciiStream方法提供正確的參數?
public class TestSetAscii {
public static void main(String[] args) throws SQLException, FileNotFoundException {
String dataFile = "FastLoad1.csv";
String insertTable = "INSERT INTO " + "myTableName" + " VALUES(?,?,?)";
Connection conStd = DriverManager.getConnection("jdbc:xxxxx", "xxxxxx", "xxxxx");
InputStream dataStream = new FileInputStream(new File(dataFile));
PreparedStatement pstmtFld = conStd.prepareStatement(insertTable);
// Until this line everything is awesome
pstmtFld.setAsciiStream(1, dataStream, -1); // This line fails
System.out.println("works");
}
}
我得到的「cbColDef值超出範圍」錯誤
Exception in thread "main" java.sql.SQLException: [Teradata][ODBC Teradata Driver] Invalid precision: cbColDef value out of range
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLBindInParameterAtExec(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setStream(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setAsciiStream(Unknown Source)
at file.TestSetAscii.main(TestSetAscii.java:21)
這裏是鏈接到我的FastLoad1.csv文件。我想這setAsciiStream
因爲FastLoad1.csv文件的失敗,但我不知道
(在我以前question我沒能縮小問題,我有,現在我已經縮短了代碼。)
+1謝謝。這實際上起作用。但我認爲「-1」意味着任何長度的領域(無限)。如何來「-1」不起作用 –
當你說「綁定」,你的意思是列?準備好的聲明的問號?在這裏http://developer.teradata.com/doc/connectivity/jdbc/reference/current/samp/T20208JD.java.txt只有一個流 –