Frage

Ich erhalte diese BatchupdateException von einer Anweisung STMT.Executebatch ():

BatchUpdateException: A resultset was created for update

Das Internet enthält keine Informationen zu dieser Ausnahmebeldung. Was bedeutet das? Das Traceback enthält nichts anderes als ein gespeicherter Verfahren.

War es hilfreich?

Lösung

Ich würde die Nachricht als Bedeutung interpretieren, dass eine SQL -Anweisung, die Sie über hinzugefügt haben addBatch() hat a produziert ResultSet, was bedeutet, dass es nicht dein normal ist INSERT, UPDATE oder DELETE Aussage.

Aussagen, die Ergebnisse zurückgeben sollten, können nicht in Stapeln mit JDBC ausgeführt werden.

Das JDBC -Tutorial (Unter der Überschrift "Handling -Batch -Update -Ausnahmen") bestätigt es:

Sie erhalten eine BatchUpDateException, wenn Sie die Methode ExecuteBatch aufrufen, wenn (1) eine der SQL -Anweisungen, die Sie dem Stapel hinzugefügt haben aus irgendeinem anderen Grund.

Sie scheinen hier 1 in den Fall 1 zu treffen.

Andere Tipps

Ein Batch-Update besteht aus mehreren Einfügen/Aktualisierung/Löschen von Anweisungen, die von der Datenbank zusammen verarbeitet werden. Dies ist üblich aus Performance -Gründen. 1x 1000 Einsätze sind viel schneller als 1000x 1 Einsatz. Eine BatchupdateException bedeutet, dass 1 (oder mehr) Aussagen am häufigsten aufgrund einer Einschränkung der Violation fehlgeschlagen sind. Sie müssen sich das gespeicherte Verfahren ansehen, um zu sehen, was es getan hat. Mayby Your DBA kann Ihnen weitere Informationen darüber geben, was schief gelaufen ist.

Ich habe eine Spalte aus der Tabelle fallen gelassen. Als ich versuchte, Datensätze in diese Tabelle einzufügen, erhielt ich BatchupdateException.

Nach dem Ausführen des folgenden Befehls wurde das Problem gelöst

Reorg Table Table_Name

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top