这是我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只有一个流 –