Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Metoda ExecuteBatch zwraca tablicę o wartości -2 w java

Jdbc-spec ma następujące informacje o kodzie powrotu aktualizacji wsadowych:

■ 0 lub więcej — polecenie zostało przetworzone pomyślnie, a wartość to liczba aktualizacji wskazująca liczbę wierszy w bazie danych, na które miało wpływ wykonanie poleceniaRozdział 14 Aktualizacje wsadowe 121

■ Statement.SUCCESS_NO_INFO — polecenie zostało przetworzone pomyślnie, ale liczba wierszy, których to dotyczy, jest nieznana

Statement.SUCCESS_NO_INFO jest zdefiniowany jako -2, więc Twój wynik mówi, że wszystko działało dobrze, ale nie otrzymasz informacji o liczbie zaktualizowanych kolumn.

Dokumentacja wyroczni stwierdza:

•Dla przygotowanej partii wyciągów nie jest możliwe poznanie liczby wierszy w bazie danych, na które ma wpływ każdy indywidualny wyciąg w partii. Dlatego wszystkie elementy tablicy mają wartość -2. Zgodnie ze specyfikacją JDBC 2.0 wartość -2 wskazuje, że operacja się powiodła, ale liczba wierszy, których to dotyczy, jest nieznana.

• W przypadku zbiorczej partii instrukcji tablica zawiera rzeczywiste liczniki aktualizacji wskazujące liczbę wierszy, na które ma wpływ każda operacja. Rzeczywista liczba aktualizacji może być podana tylko w przypadku ogólnych instrukcji w implementacji Oracle standardowego przetwarzania wsadowego.

• W przypadku partii instrukcji wywoływanych serwer zawsze zwraca wartość 1 jako licznik aktualizacji, niezależnie od liczby wierszy, na które ma wpływ każda operacja.

Wygląda więc na to, że jeśli potrzebujesz liczników aktualizacji, nie możesz użyć PreparedStatement s, ale muszę wrócić do zwykłego Statement s.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Napraw „Nie można otworzyć aplikacji „SQLDeveloper.app”.’

  2. to jest błąd ORA-12154:TNS:nie można rozwiązać podanego identyfikatora połączenia?

  3. Jak uzyskać dostęp do bazy danych Oracle przez sieć?

  4. Oracle — dlaczego początkowe zero liczby znika podczas konwersji TO_CHAR

  5. odpowiednik `pokaż utwórz tabelę` w Oracle sql