sql >> Database >  >> RDS >> Oracle

JDBC Batch invoegen uitzondering afhandeling

U geeft aan dat u batches SQL-instructies uitvoert, dus ik neem aan dat u executeBatch gebruikt . Wanneer u Batch uitvoert een reeks verklaringen, kunnen sommige van de verklaringen slagen en kunnen sommige van de verklaringen mislukken. Als een instructie mislukt, betekent dat niet dat het JDBC-stuurprogramma de geslaagde instructies terugdraait. Het JDBC-stuurprogramma kan ervoor kiezen om alle instructies in de batch uit te voeren als één instructie mislukt, of het kan ervoor kiezen om te stoppen met het uitvoeren van instructies in de batch zodra een instructie mislukt (het klinkt alsof het stuurprogramma dat u gebruikt ervoor kiest om te stoppen met het uitvoeren van instructies als zodra er een storing is).

Wanneer een instructie in een batch mislukt, moet u een BatchUpdateException . krijgen . In uw uitzonderingshandler moet u getUpdateCounts . aanroepen . Dat geeft je een array van int die u vertelt hoeveel rijen de instructie heeft bijgewerkt, een Statement.SUCCESS_NO_INFO wat aangeeft dat de instructie is geslaagd maar dat er geen rijtelling beschikbaar was, of een Statement.EXECUTE_FAILED waaruit blijkt dat de verklaring is mislukt. Als de eerste 99 instructies slagen, de 100e instructie een fout genereert en de overige instructies niet worden uitgevoerd, moet u een array van 100 elementen terugkrijgen waarbij de eerste 99 elementen succes aangeven en het 100e element Statement.EXECUTE_FAILED aangeeft. code> . Uw code zou dan de instructies die niet zijn uitgevoerd opnieuw moeten proberen (in dit geval de instructies 101-1000).



  1. Gebruik @@IDENTITY om de laatst ingevoerde identiteitswaarde in SQL Server te retourneren

  2. Veelgestelde vragen over JAVA/JRE in Oracle Apps

  3. Is er een manier om power bi-rapporten en -dashboards in de vb.net- of C#-desktoptoepassing in te sluiten met de SQL Server 2008-database?

  4. Bestel een MySQL-tabel met twee kolommen