Java SQL 插入大量数据时出现异常
Java SQL Exception while Inserting large amount of Data
我正在尝试将大量数据从一个 table 插入另一个 table。两个table在不同的地区。当我插入数据时,ID(我用来创建连接)能够插入较少行数的数据。如果它插入超过 500 行的数据,它会抛出异常
com.ibm.db2.jcc.b.SqlException:DB2 SQL 错误:SQL代码:-551,SQL状态:42501,SQLERRMC : DB2GCS;执行包;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();
在此先感谢您的帮助。
您的代码实际上没有正确批处理,这可能是它崩溃的原因。问题是您在不必要地一遍又一遍地准备插入查询。
你只需要像
一样在循环外准备一次
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();
我正在尝试将大量数据从一个 table 插入另一个 table。两个table在不同的地区。当我插入数据时,ID(我用来创建连接)能够插入较少行数的数据。如果它插入超过 500 行的数据,它会抛出异常
com.ibm.db2.jcc.b.SqlException:DB2 SQL 错误:SQL代码:-551,SQL状态:42501,SQLERRMC : DB2GCS;执行包;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();
在此先感谢您的帮助。
您的代码实际上没有正确批处理,这可能是它崩溃的原因。问题是您在不必要地一遍又一遍地准备插入查询。
你只需要像
一样在循环外准备一次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();