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

Обработка на изключения за пакетно вмъкване на JDBC

Вие заявявате, че изпълнявате партиди от SQL оператори, така че предполагам, че използвате executeBatch . Когато executeBatch партида от изявления, някои от изявленията може да са успешни, а някои от изявленията могат да се провалят. Ако едно изявление е неуспешно, това не означава, че JDBC драйверът връща назад успешните оператори. JDBC драйверът може да избере да се опита да изпълни всички оператори в пакета, ако един оператор не успее, или може да избере да спре изпълнението на оператори в пакета, след като даден израз се провали (звучи, че драйверът, който използвате, избира да спре изпълнението на оператори като веднага щом има повреда).

Когато едно изявление в групата се провали, трябва да получите BatchUpdateException . Във вашия манипулатор на изключения трябва да извикате getUpdateCounts . Това ще ви даде масив от int което ви казва или колко реда е актуализирано изявлението, Изявление.SUCCESS_NO_INFO което показва, че операторът е успешен, но няма наличен брой редове, или Statement.EXECUTE_FAILED което показва, че изявлението е неуспешно. Ако първите 99 оператора са успешни, 100-ият израз генерира грешка, а останалите оператори не се изпълняват, трябва да получите обратно масив от 100 елемента, където първите 99 елемента показват успех, а 100-ият елемент показва Statement.EXECUTE_FAILED . След това кодът ви ще трябва да опита отново тези оператори, които не са били изпълнени (в този случай, оператори 101-1000).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да проверите версията на доставчика на oracle за ole-db. Доставчик на OraOLEDB.Oracle

  2. променете колоната за отпадане на таблицата в базата данни на Oracle

  3. десетична(s,p) или число(s,p)?

  4. 4 начина за намиране на редове, които съдържат главни букви в Oracle

  5. Грешка при присъединяване към актуализиране