sql >> Databáze >  >> RDS >> Oracle

Metoda ExecuteBatch vrací pole s hodnotou -2 v jazyce Java

Specifikace jdbc má k návratovému kódu dávkových aktualizací následující informace:

■ 0 nebo vyšší – příkaz byl úspěšně zpracován a hodnota je počet aktualizací udávající počet řádků v databázi, které byly ovlivněny provedením příkazu Kapitola 14 Dávkové aktualizace 121

■ Statement.SUCCESS_NO_INFO – příkaz byl úspěšně zpracován, ale počet ovlivněných řádků není znám

Statement.SUCCESS_NO_INFO je definováno jako -2, takže váš výsledek říká, že vše fungovalo dobře, ale nezískáte informace o počtu aktualizovaných sloupců.

Dokumentace věštce uvádí:

•U připravené dávky výpisů není možné znát počet řádků ovlivněných v databázi každým jednotlivým výpisem v dávce. Proto mají všechny prvky pole hodnotu -2. Podle specifikace JDBC 2.0 hodnota -2 znamená, že operace byla úspěšná, ale počet ovlivněných řádků není znám.

•U generické dávky příkazů pole obsahuje skutečné počty aktualizací udávající počet řádků ovlivněných každou operací. Skutečné počty aktualizací lze poskytnout pouze v případě obecných příkazů v implementaci standardního dávkování Oracle.

•U volatelné dávky příkazů server vždy vrátí hodnotu 1 jako počet aktualizací, bez ohledu na počet řádků ovlivněných každou operací.

Zdá se tedy, že pokud potřebujete počty aktualizací, nemůžete použít PreparedStatement s, ale musíte se vrátit k prostému Statement s.



  1. Získejte informace o sloupcích pro tabulku nebo zobrazení v SQL Server (T-SQL:sp_columns)

  2. Plánovaná údržba databáze IS 24/7 na MS SQL Server

  3. Stanovení a identifikace cílů řádků v prováděcích plánech

  4. Lehké nákupní dobrodružství