Sådan fungerer Oracle. Din første INSERT blev udført korrekt (dvs. indsat "1" i en tabel).
Derefter kørte du en anonym PL/SQL-blok, som indsætter "3", derefter "2", og fejler, når du forsøger at indsætte "1" på grund af primærnøgleovertrædelse.
Hvis der opstår en ubehandlet undtagelse under udførelse af den pågældende PL/SQL-blok (hvilket er, hvad du siger, at "Oracle-undtagelseshandler rollbacks hertil"), ruller Oracle tilbage til begyndelsen af PL/SQL-blokken.
Når du bruger EXCEPTION handler og udsteder ROLLBACK, så er det DIG, der bestemmer, hvad du skal gøre, hvis der sker noget, og det er at gendanne alle ændringer til tidligere COMMIT, som var en implicit udført COMMIT efter at have udført CREATE TABLE-sætningen, så følg INSERT "1 " er også rullet tilbage.