Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Xử lý ngoại lệ chèn hàng loạt JDBC

Bạn nói rằng bạn đang thực thi hàng loạt câu lệnh SQL, vì vậy tôi giả sử rằng bạn đang sử dụng executeBatch . Khi bạn executeBatch một loạt các câu lệnh, một số câu lệnh có thể thành công và một số câu lệnh có thể thất bại. Nếu một câu lệnh không thành công, điều đó không có nghĩa là trình điều khiển JDBC sẽ khôi phục các câu lệnh đã thành công. Trình điều khiển JDBC có thể chọn cố gắng thực thi tất cả các câu lệnh trong lô nếu một câu lệnh không thành công hoặc nó có thể chọn ngừng thực thi các câu lệnh trong lô khi một câu lệnh không thành công (có vẻ như trình điều khiển bạn đang sử dụng chọn ngừng thực thi các câu lệnh như ngay khi có sự cố).

Khi một câu lệnh trong một lô không thành công, bạn sẽ nhận được BatchUpdateException . Trong trình xử lý ngoại lệ, bạn cần gọi getUpdateCounts . Điều đó sẽ cung cấp cho bạn một mảng int điều đó cho bạn biết câu lệnh đã cập nhật bao nhiêu hàng, một Statement.SUCCESS_NO_INFO cho biết câu lệnh đã thành công nhưng không có số hàng hoặc Statement.EXECUTE_FAILED chỉ ra rằng câu lệnh không thành công. Nếu 99 câu lệnh đầu tiên thành công, câu lệnh thứ 100 tạo ra lỗi và các câu lệnh còn lại không được thực thi, bạn sẽ lấy lại mảng 100 phần tử trong đó 99 phần tử đầu tiên cho biết thành công và phần tử thứ 100 chỉ ra Statement.EXECUTE_FAILED . Sau đó, mã của bạn sẽ cần phải thử lại những câu lệnh chưa được thực thi (trong trường hợp này là câu lệnh 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. Chuyển đổi Dấu thời gian Unix thành Giá trị ngày tháng trong Oracle

  2. Cơ sở dữ liệu Oracle bị treo hoàn toàn trong các truy vấn CẬP NHẬT

  3. Cài đặt phần mềm Oracle Database 12c trên Windows

  4. Khai báo một biến và đặt giá trị của nó từ một truy vấn SELECT trong Oracle

  5. Ngày Oracle