Oracle
 sql >> база данни >  >> RDS >> Oracle

Методът ExecuteBatch връща масив със стойност -2 в java

jdbc-spec има следното да се каже за кода за връщане на пакетни актуализации:

■ 0 или повече — командата е обработена успешно и стойността е anupdate count, показващ броя на редовете в базата данни, които са били засегнати от изпълнението на командата Глава 14 Пакетни актуализации 121

■ Statement.SUCCESS_NO_INFO — командата е обработена успешно, но броят на засегнатите редове е неизвестен

Statement.SUCCESS_NO_INFO се дефинира като -2, така че резултатът ви казва, че всичко работи добре, но няма да получите информация за броя на актуализираните колони.

Документацията на оракула гласи:

•За подготвен пакет от изявления не е възможно да се знае броят на редовете, засегнати в базата данни от всеки отделен оператор в пакета. Следователно всички елементи на масива имат стойност -2. Според спецификацията на JDBC 2.0, стойност от -2 показва, че операцията е била успешна, но броят на засегнатите редове е неизвестен.

• За пакет с общи изявления масивът съдържа действителните бройки на актуализациите, показващи броя на редовете, засегнати от всяка операция. Действителният брой актуализации може да бъде предоставен само в случай на генерични изрази в изпълнението на стандартно пакетиране на Oracle.

•За пакет с извикваеми оператори сървърът винаги връща стойността 1 като брой на актуализациите, независимо от редовете с номера, засегнати от всяка операция.

Така че изглежда, ако имате нужда от броя на актуализациите, не можете да използвате PreparedStatement s, но трябва да се върнем към обикновен Statement с.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PreparedStatement и setTimestamp в oracle jdbc

  2. Ускорете операциите за групово вмъкване с NHibernate

  3. Заявка за намиране на пълни сканирания на таблицата в oracle

  4. Синтаксис за външно присъединяване на Oracle в стар стил - Защо да намирате (+) от дясната страна на знака за равенство в лявото външно присъединяване?

  5. Изберете без клауза FROM в Oracle