我已通过JDBC连接到我的Teradata数据库,并尝试使用Teradata的FASTLOAD实用程序将记录插入表中(使用预准备语句和批处理)。例如:
connection = DriverManager.getConnection("jdbc:teradata://192.168.1.110/TYPE=FASTLOAD", "admin", "admin");
String sql = "INSERT INTO table (RANDOM_INTEGER) VALUES (?)";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
int numberOfRecordsToInsert = 100000;
for (int i = 0; i < numberOfRecordsToInsert; i++) {
preparedStatement.setInt(1, 5);
preparedStatement.addBatch();
}
preparedStatement.executeBatch();
connection.commit();
有了这个(我在许多不同数据类型的表上尝试了这个),当它到达executeBatch()行时会出现以下错误:
线程“main”中的异常java.sql.BatchUpdateException:[Teradata JDBC驱动程序] [TeraJDBC 15.10.00.14] [错误1154] [SQLState HY000] A. 插入指定的行批次时发生故障 数据库表“admin”。“表”。失败的细节可以 在getNextException可访问的异常链中找到。 在 com.teradata.jdbc.jdbc_4.util.ErrorFactory.makeBatchUpdateException(ErrorFactory.java:148) 在 com.teradata.jdbc.jdbc_4.util.ErrorFactory.makeBatchUpdateException(ErrorFactory.java:132) 在 com.teradata.jdbc.jdbc.fastload.FastLoadManagerPreparedStatement.executeBatch(FastLoadManagerPreparedStatement.java:2202) at teradata.fastload.main(fastload.java:62)引起: java.sql.SQLException:[Teradata JDBC Driver] [TeraJDBC 15.10.00.14] [错误1147] [SQLState HY000]异常中的下一个失败 在开始数据库表的FastLoad时发生链 “管理员”。“表”在 com.teradata.jdbc.jdbc_4.util.ErrorFactory.makeDriverJDBCException(ErrorFactory.java:94) 在 com.teradata.jdbc.jdbc_4.util.ErrorFactory.makeDriverJDBCException(ErrorFactory.java:69) 在 com.teradata.jdbc.jdbc.fastload.FastLoadManagerPreparedStatement.beginFastLoad(FastLoadManagerPreparedStatement.java:836) 在 com.teradata.jdbc.jdbc.fastload.FastLoadManagerPreparedStatement.executeBatch(FastLoadManagerPreparedStatement.java:2070) ......还有1个
我不知道如何调用错误所说的getNextException。