Oracle में कोई ON COMMIT ट्रिगर तंत्र नहीं है। हालांकि इसके समाधान हैं:
-
आप ऑन कमिट रिफ्रेश के साथ एक भौतिक दृश्य का उपयोग कर सकते हैं और इस एमवी में ट्रिगर्स जोड़ सकते हैं। यह आपको तर्क को ट्रिगर करने की अनुमति देगा जब आधार तालिका को संशोधित किया गया हो प्रतिबद्धता के समय . यदि ट्रिगर कोई त्रुटि उत्पन्न करता है, तो लेन-देन वापस ले लिया जाएगा (आप सभी अप्रतिबद्ध परिवर्तन खो देंगे)।
-
प्रतिबद्धता के बाद किसी क्रिया को स्थगित करने के लिए आप DBMS_JOB का उपयोग कर सकते हैं। यह एक अतुल्यकालिक क्रिया होगी और कुछ मामलों में वांछनीय हो सकती है (उदाहरण के लिए जब आप लेनदेन के सफल होने के बाद एक ईमेल भेजना चाहते हैं)। यदि आप प्राथमिक लेन-देन वापस लेते हैं, तो कार्य रद्द कर दिया जाएगा। कार्य और प्राथमिक सत्र स्वतंत्र हैं:यदि कार्य विफल रहता है तो मुख्य लेन-देन वापस नहीं लिया जाएगा।
आपके मामले में, आप शायद विकल्प (1) का उपयोग कर सकते हैं। मैं व्यक्तिगत रूप से ट्रिगर्स में व्यावसायिक तर्क को कोड करना पसंद नहीं करता क्योंकि यह बहुत जटिलता जोड़ता है लेकिन तकनीकी रूप से मुझे लगता है कि यह संभव होगा।