Sybase中的JDBC批处理创建

时间:2012-03-28 11:54:19

标签: jdbc sybase-ase

我需要更新一个有大约500万行的表。 因此,为此我想在java中创建批处理语句并作为批量操作进行更新。

Righht现在我有100个批次并且它工作正常。但是当我增加批次数超过100时我得到一个例外:com.sybase.jdbc2.jdbc.SybBatchUpdateException:JZ0BE:BatchUpdateException:执行批处理语句时出错:消息为空。

如何在CallableStatement对象中拥有更多批处理语句。

1 个答案:

答案 0 :(得分:1)

没有足够的声誉来发表评论......但是你批处理的是什么类型的声明?你更新了多少行?表有主键吗?表中有多少列,以及您更新了多少列?

通用答案: sybase中的JDBC框架非常快。您至少可以考虑编写一个简单的过程来接收您用来标识行的主键(或其他)信息,以及将更新为行的新值作为输入变量。此过程仅更新单行。

将此过程包装在自己的java方法中,该方法处理callablestatement,注册你的错误号和错误消息参数等。

然后你可以遍历你现在使用的任何构造来更新数据,并使用相同的java方法来调用过程来逐行更新值。

同样,我不知道你要做的事情的数量......但是我知道你是否想要进行单行更新,这将非常快。