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

Czym więc `ROLLBACK` w programie obsługi wyjątków Oracle różni się od mojego `ROLLBACK`?

Tak działa Oracle. Twoja pierwsza INSERT została wykonana poprawnie (tj. wstawiono „1” do tabeli).

Następnie uruchomiłeś anonimowy blok PL/SQL, który wstawia „3”, a następnie „2”, a próba wstawienia „1” kończy się niepowodzeniem z powodu naruszenia klucza podstawowego.

Jeśli podczas wykonywania tego bloku PL/SQL wystąpi nieobsłużony wyjątek (co nazywasz „cofanie obsługi wyjątków Oracle do tego miejsca”), Oracle cofa się do początku bloku PL/SQL.

Kiedy używasz programu obsługi EXCEPTION i wydajesz ROLLBACK, to to TY decydujesz, co zrobić, jeśli coś się stanie, a to jest cofnięcie wszystkich zmian do poprzedniego COMMIT, który był niejawnie wykonanym COMMIT po wykonaniu instrukcji CREATE TABLE, więc po INSERT "1 ” jest również cofany.



  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:Oblicz różnicę czasu w GG:MM:SS między 2 datami

  2. procedura składowana wywołania Oracle w programie select

  3. AUTONOMICZNA_TRANSAKCJA

  4. Konwertuj dane wyjściowe zapytania Oracle na json (Oracle / NodeJS)

  5. Crystal Report nie pobrał danych