उत्परिवर्तन तब होता है जब आपके पास एक पंक्ति-स्तरीय ट्रिगर होता है जो उस तालिका को संशोधित करता है जिस पर आप ट्रिगर कर रहे हैं। समस्या यह है कि ओरेकल को यह नहीं पता कि कैसे व्यवहार करना है। आप एक पंक्ति सम्मिलित करते हैं, ट्रिगर स्वयं उसी . में एक पंक्ति सम्मिलित करता है तालिका, और Oracle भ्रमित हो जाता है, कारण, जो ट्रिगर के कारण तालिका में सम्मिलित होते हैं, क्या वे भी ट्रिगर कार्रवाई के अधीन हैं?
समाधान तीन चरणों वाली प्रक्रिया है।
1.) ट्रिगर से पहले स्टेटमेंट स्तर जो एक पैकेज को इंस्टेंट करता है जो सम्मिलित की जा रही पंक्तियों का ट्रैक रखेगा।
2.) ट्रिगर से पहले या बाद में पंक्ति-स्तर जो उस पंक्ति जानकारी को पिछले चरण में तत्काल किए गए पैकेज चर में सहेजता है।
3.) ट्रिगर के बाद स्टेटमेंट स्तर जो तालिका में सम्मिलित करता है, सभी पंक्तियाँ जो पैकेज चर में सहेजी जाती हैं।
इसका एक उदाहरण यहां पाया जा सकता है:
http://asktom.oracle.com/pls/asktom/ASKTOM .download_file?p_file=6551198119097816936
आशा है कि यह मदद करता है।