插入大量数据时出现Java SQL异常

时间:2015-02-11 18:07:21

标签: java database jdbc db2

我正在尝试将大量数据从一个表插入到另一个表中。这两张表位于不同的地区。当我插入数据时,ID(我用来创建连接)能够插入较少行数的数据。如果它插入超过500行的数据,则抛出异常

com.ibm.db2.jcc.b.SqlException:DB2 SQL错误:SQLCODE:-551,SQLSTATE:42501,SQLERRMC:DB2GCS; EXECUTE PACKAGE; NULLID.SYSLH203。

如果数据更多,我无法找到为什么它显示相同ID的授权例外。

My Code Snippet : 
 while(RSet.next()){
           stmt=test_conn.prepareStatement("Insert Query");
           for(int i=1;i<=columnCount;i++){
               stmt.setString(i,RSet.getString(i));
           }
           stmt.addBatch();;
       }
       stmt.executeBatch();

先谢谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您的代码实际上没有正确批处理,这可能是它破坏的原因。问题是你不必要地一遍又一遍地准备插入查询。

你需要在循环之外准备一次,如

test_conn.setAutoCommit(false);
stmt = test_conn.prepareStatement("INSERT INTO ...");

while(RSet.next()){
   for(int i = 1; i <= columnCount; i++){
       stmt.setString(i, RSet.getString(i));
   }
   stmt.addBatch();
}

stmt.executeBatch();
test_conn.commit();