2012-03-28 98 views
4

我需要更新一個包含約500萬行的表。 因此,爲了這個目的,我想在java中創建批處理語句並作爲批量操作進行更新。在Sybase中創建JDBC批處理

Righht現在我有100個批次並且它工作正常。但是當我增加批次數量超過一百時,我得到一個exceptio爲:com.sybase.jdbc2.jdbc.SybBatchUpdateException:JZ0BE:BatchUpdateException:執行批次時發生錯誤聲明:消息爲空。

如何在我的CallableStatement對象中擁有更多的批處理語句。

回答

1

沒有足夠的聲望來留下評論......但是您分配哪些類型的聲明?你正在更新的行數有多少?表格是否有主鍵?表格中有多少列,以及您要更新多少列?

通用答案: sybase中的JDBC框架非常快。您至少可以考慮編寫一個簡單的過程,該過程接收您用來識別該行的主鍵(或其他)信息以及將該行更新爲輸入變量的新值。此過程將僅更新單個行。

總結這個過程中它自己的Java方法處理CallableStatement的,註冊了錯誤號和錯誤信息參數,可以等

然後你可以通過你現在正在使用的數據更新任何構建循環,使用相同的java方法來調用過程以逐行更新值。

同樣,我不知道你想要做什麼的數量......但我知道如果你正在嘗試單行更新,這將非常快。