इस तरह ओरेकल काम करता है। आपका पहला INSERT सही ढंग से किया गया था (यानी एक तालिका में "1" डाला गया)।
फिर आपने एक अनाम PL/SQL ब्लॉक चलाया जो "3", फिर "2" सम्मिलित करता है, और प्राथमिक कुंजी उल्लंघन के कारण "1" डालने का प्रयास करते समय विफल हो जाता है।
यदि उस पीएल/एसक्यूएल ब्लॉक के निष्पादन के दौरान हैंडल न किया गया अपवाद होता है (जो आप कहते हैं कि "ओरेकल अपवाद हैंडलर यहां रोलबैक करता है"), तो ओरेकल पीएल/एसक्यूएल ब्लॉक की शुरुआत में वापस आ जाता है।
जब आप एक्सेप्शन हैंडलर का उपयोग करते हैं और रोलबैक जारी करते हैं, तो यह आप ही तय करते हैं कि अगर कुछ होता है तो क्या करना है, और वह है सभी परिवर्तनों को पिछले COMMIT में वापस करना जो कि क्रिएट टेबल स्टेटमेंट को निष्पादित करने के बाद एक निहित रूप से किया गया COMMIT था, इसलिए INSERT "1 " को भी वापस ले लिया गया है।