带有CLOB的DB2 batchUpdate

时间:2015-03-25 14:11:24

标签: java batch-file stored-procedures db2 clob

我正在使用DB2 10.5 FP3。我有一个存储过程,它将一些数据插入数据库。部分数据定义为CLOB。在JDBC应用程序中,我进行了批量更新。它给出了错误:

  

[jcc] [t4] [2030] [11211] [4.19.26]期间发生通信错误   对连接的底层套接字,套接字输入流的操作,   或套接字输出流。错误位置:Reply.fill() - 不足   数据(-1)。消息:数据不足。 ERRORCODE = -4499,   SQLSTATE = 08001

     

[ERROR] executeBatchUpdate中的问题。批处理元素#1出错:   [jcc] [t4] [2030] [11211] [4.19.26]期间发生通信错误   对连接的底层套接字,套接字输入流的操作,   或套接字输出流。错误位置:Reply.fill() - 不足   数据(-1)。消息:数据不足。 ERRORCODE = -4499,   SQLSTATE = 08001

     

[jcc] [10242] [10807] [4.19.26]连接失效。 ERRORCODE = -4224,   SQLSTATE =空

如果我没有使用批处理,只为每条记录使用executeUpdate(),一切都很好。

另外,我花了一些时间来调试它。如果在DB端,我将存储过程的参数从CLOB更改为VARGRAPHIC,那么批量更新就可以了。

以下是我准备声明的方式:

CallableStatement statement;
Clob clob = myConnection.createClob();
clob.setString(1, value);
statement.setClob(paramIndex, clob);

以下是我如何调用批次:

for (int index = 0; index < this.batchSize; index++) {
    setJDBCParametersForBatchEntryAtDB2(statement, index);
    statement.addBatch();// add the statement to the batch
}
statement.executeBatch();// execute the batch commands

任何人都有建议或解决方案吗?

0 个答案:

没有答案