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

प्रक्रिया में डीएमएल के बाद प्रतिबद्धता रखने का क्या प्रभाव है?

<ब्लॉककोट>

कार्यक्रम में इस तरह प्रतिबद्धता रखने का क्या प्रभाव है?

Oracle दस्तावेज़ीकरण COMMIT . का वर्णन करता है के रूप में:

<ब्लॉककोट>

उद्देश्य

COMMIT का उपयोग करें आपके वर्तमान लेन-देन को समाप्त करने और लेन-देन में किए गए सभी परिवर्तनों को स्थायी बनाने के लिए विवरण। एक लेन-देन SQL कथनों का अनुक्रम है जिसे Oracle डेटाबेस एक एकल इकाई के रूप में मानता है। यह कथन लेन-देन के सभी बचत बिंदुओं को भी मिटा देता है और लेन-देन के ताले को हटा देता है।

यदि आपके पास तीन PROCEDURE हैं और प्रत्येक में एक COMMIT होता है कथन तो आप तीनों को नहीं चला सकते हैं, यदि बाद वाले में कोई अपवाद होता है, ROLLBACK उन सभी के रूप में पहले दो से परिवर्तन पहले से ही COMMIT . होंगे टेड.

एक सामान्य नियम के रूप में, आपको नहीं . करना चाहिए COMMIT का उपयोग करें एक PROCEDURE . में या FUNCTION लेकिन इसे कॉल करने वाले पर COMMIT . पर छोड़ देना चाहिए लेन-देन ताकि वे एक साथ कई कार्रवाइयों को बंडल कर सकें।

बेशक, ऐसे मामलों का उपयोग करें जहां आप इस नियम का उल्लंघन करना चाहते हैं, लेकिन आपको प्रत्येक मामले पर अलग से विचार करना चाहिए और इस नियम को तोड़ने से पहले अपने व्यावसायिक तर्क को पूरी तरह से समझने के लिए समय निकालना चाहिए ताकि आप जान सकें कि COMMIT क्या है प्रत्येक उदाहरण में टेड।

<ब्लॉककोट>

क्या मुझे यह लेन-देन AUTONOMOUS_TRANSACTION . के रूप में करना चाहिए? ?

एक उपयोग-मामला लॉगिंग है - आपके पास एक PROCEDURE हो सकता है जो एक और PROCEDURE calls को कॉल करता है उपयोगकर्ता के कार्यों को लॉग करने के लिए और, भले ही प्रारंभिक क्रिया सफल हो या विफल हो, आप कार्रवाई का लॉग रखना चाहते हैं और यह सुनिश्चित करना चाहते हैं कि लॉग COMMIT है टेड इस मामले में, लॉगिंग PROCEDURE एक AUTONOMOUS_TRANSACTION होना चाहिए और इसमें एक COMMIT हो स्टेटमेंट और कॉलिंग स्टेटमेंट में (शायद) न तो होना चाहिए।

तो, अगर COMMIT एक PROCEDURE हमेशा आवश्यक होता है और यह इस बात से स्वतंत्र होता है कि कॉलर COMMIT है या नहीं अन्य डेटा के बाद PROCEDURE बनाएं एक AUTONOMOUS_TRANSACTION . अगर PROCEDURE s को एक साथ बंडल किया जा सकता है और फिर ROLLBACK एक समूह के रूप में तो आप उन्हें AUTONOMOUS_TRANSACTION . नहीं बनाना चाहते एस.



  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 में TABLE को कैसे छोटा करें

  2. अमेज़ॅन आरडीएस ओरेकल इंस्टेंस से कनेक्ट करते समय रीड कॉल त्रुटि से गॉट माइनस वन से कैसे संपर्क करें

  3. Oracle में स्पष्ट और निहित कर्सर के बीच अंतर क्या है?

  4. Ubuntu 9.x पर ORACLE_HOME वैरिएबल को सही तरीके से कैसे सेट करें?

  5. Oracle डेटाबेस 12c बनाना - चरण दर चरण