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

Vậy `ROLLBACK` trong trình xử lý ngoại lệ Oracle khác với` ROLLBACK` của tôi như thế nào?

Đây là cách hoạt động của Oracle. INSERT đầu tiên của bạn đã được thực hiện chính xác (tức là đã chèn "1" vào bảng).

Sau đó, bạn chạy một khối PL / SQL ẩn danh chèn "3", sau đó "2" và không thành công khi cố gắng chèn "1" do vi phạm khóa chính.

Nếu ngoại lệ không được xử lý xảy ra trong quá trình thực thi khối PL / SQL đó (bạn nói rằng "Trình xử lý ngoại lệ Oracle khôi phục lại ở đây"), Oracle sẽ quay trở lại phần đầu của khối PL / SQL.

Khi bạn sử dụng trình xử lý EXCEPTION và đưa ra ROLLBACK, thì BẠN là người quyết định phải làm gì nếu điều gì đó xảy ra và điều đó là hoàn nguyên tất cả các thay đổi về COMMIT trước đó là một COMMIT được thực hiện ngầm sau khi thực hiện câu lệnh CREATE TABLE, vì vậy hãy làm theo CHÈN "1 "cũng được khôi phục.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách hiệu quả nhất để kiểm tra xem một bản ghi có tồn tại trong Oracle không?

  2. ORA-29977:Loại cột không được hỗ trợ để đăng ký truy vấn ở chế độ đảm bảo

  3. oracle lấy tất cả các lần xuất hiện phù hợp từ một cột

  4. Bí danh bảng không phải duy nhất của Oracle SQL trong một lần Chọn

  5. truy vấn phụ - đạt điểm cao nhất