Teradata:[错误1154] [SQLState HY000]插入一批行

时间:2016-04-06 11:35:17

标签: sql jdbc prepared-statement batch-processing teradata

我已通过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。

0 个答案:

没有答案