2012-03-28 87 views
4

我需要更新一个包含约500万行的表。 因此,为了这个目的,我想在java中创建批处理语句并作为批量操作进行更新。在Sybase中创建JDBC批处理

Righht现在我有100个批次并且它工作正常。但是当我增加批次数量超过一百时,我得到一个exceptio为:com.sybase.jdbc2.jdbc.SybBatchUpdateException:JZ0BE:BatchUpdateException:执行批次时发生错误声明:消息为空。

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

回答

1

没有足够的声望来留下评论......但是您分配哪些类型的声明?你正在更新的行数有多少?表格是否有主键?表格中有多少列,以及您要更新多少列?

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

总结这个过程中它自己的Java方法处理CallableStatement的,注册了错误号和错误信息参数,可以等

然后你可以通过你现在正在使用的数据更新任何构建循环,使用相同的java方法来调用过程以逐行更新值。

同样,我不知道你想要做什么的数量......但我知道如果你正在尝试单行更新,这将非常快。