Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ट्रिगर के बाद उसी तालिका का उपयोग करने वाली प्रक्रिया को कैसे कॉल करें

आप नहीं कर सकते।

एक सामान्य पंक्ति-स्तरीय ट्रिगर उस तालिका से पूछताछ नहीं कर सकता जिस पर ट्रिगर परिभाषित किया गया है क्योंकि यह एक उत्परिवर्तनीय तालिका अपवाद उठाएगा। मुझे लगता है कि इसलिए आपने एक स्वायत्त लेनदेन का उपयोग करने के लिए अपना ट्रिगर घोषित कर दिया है (लगातार लॉगिंग के अलावा किसी अन्य चीज़ के लिए एक स्वायत्त लेनदेन लगभग निश्चित रूप से एक त्रुटि है)। हालांकि, यदि आप ऐसा करते हैं, तो आपका ट्रिगर लेन-देन द्वारा किए गए अप्रतिबद्ध परिवर्तनों को नहीं देख सकता है। यही वह समस्या है जिसका आप अभी सामना कर रहे हैं।

एक विकल्प यौगिक ट्रिगर का उपयोग करना होगा . आप test_table.type_%type . के संग्रह की घोषणा करेंगे , आप अपने ट्रिगर के पंक्ति-स्तर वाले हिस्से में इस संग्रह में बदल रहे मानों को जोड़ देंगे, और फिर आप अपने ट्रिगर के आफ्टर-स्टेटमेंट भाग में संग्रह के तत्वों पर पुनरावृति करेंगे। एक स्टेटमेंट-लेवल ट्रिगर को उस टेबल को क्वेरी करने की अनुमति है जिस पर ट्रिगर को परिभाषित किया गया है ताकि आप अपने कंपाउंड ट्रिगर के आफ्टर-स्टेटमेंट हिस्से से अपनी प्रक्रिया को कॉल कर सकें।



  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 वॉलेट का उपयोग किया जाता है तो सही JDBC URL सिंटैक्स क्या है?

  2. ऑरैकल एसक्यूएल से केवल 1 पंक्ति का चयन कैसे करें?

  3. SQL सर्वर रिपोर्टिंग सेवाओं में Oracle दिनांक प्रारूप अपवाद

  4. ओरेकल संग्रहीत प्रक्रिया को कैसे निष्पादित करें?

  5. pl/sql में नेस्टेड फ़ंक्शंस के साथ प्रक्रिया में अपवाद हैंडलिंग