2010-10-11 15 views
6

में रोलबैक/कमिट का उपयोग कैसे करें मैं पहली बार ओरेकल एसक्यूएल में लेनदेन कार्यक्षमता का उपयोग करने की कोशिश कर रहा हूं और एक अच्छा स्पष्टीकरण नहीं लग रहा है। मैं समझता हूं कि एक नया सत्र शुरू करने से एक नया लेनदेन शुरू हो जाएगा। मैं यह भी समझता हूं कि इसे समाप्त करने के लिए प्रतिबद्ध/रोलबैक का उपयोग किया जाता है। जो मैं करने की कोशिश कर रहा हूं वह दो बयानों को निष्पादित करता है और यदि मैं उनमें से कोई भी असफल रहता हूं, तो उनके द्वारा किए गए किसी भी बदलाव को पूर्ववत करें और निष्पादन के साथ जारी रखें। मैं इस शर्त की जांच कैसे कर सकता हूं और तदनुसार प्रतिबद्ध या रोलबैक जारी कर सकता हूं?ओरेकल एसक्यूएल

उत्तर

15

एक PL/SQL ब्लॉक का उपयोग करें और कुछ इस तरह लिखना:

begin 

    statement_zero; 

    savepoint my_savepoint; 

    begin 
    -- if either of these fail, then exception section will be executed 
    statement_one; 
    statement_two; 
    exception 
    when others then 
     rollback to my_savepoint; 
    end; 

    statement_three; 

    commit; 

end; 

भी देखें http://www.adp-gmbh.ch/ora/concepts/transaction.html

+0

आह ठीक है, धन्यवाद, कुछ और ब्लॉक में देखकर मैंने एक और मुद्दा खोजा जो मैं करने की कोशिश कर रहा हूं। मैं एक तालिका में एक कॉलम जोड़ने की कोशिश कर रहा हूं, सभी मौजूदा प्रविष्टियों के डिफ़ॉल्ट मान सेट करता हूं और आवश्यकतानुसार इस मान को अपडेट करने के लिए ट्रिगर सेट करता हूं। ब्लॉक केवल चयन, इन्सर्ट, अद्यतन, हटा दें। लेनदेन में इसे लपेटने के लिए कोई विचार? – dpsthree

+5

डीडीएल स्टेटमेंट्स (क्रिएट, एल्टर, डीआरओपी, इत्यादि) निष्पादन से पहले और बाद में पूरी तरह से COMMIT। तो जिन कार्यों का आप उल्लेख कर रहे हैं उन्हें एक ही लेनदेन में नहीं किया जा सकता है, और वापस लुढ़का नहीं जा सकता है। –

+0

आप, वैसे, डीएलएल स्टेटमेंट को पीएल/एसक्यूएल ब्लॉक के भीतर गतिशील एसक्यूएल का उपयोग करके निष्पादित कर सकते हैं, उदा। 'तत्काल तत्काल' वैकल्पिक तालिका foo x NUMBER 'जोड़ें। लेकिन यह इस तथ्य को नहीं बदलेगा कि डीडीएल स्टेटमेंट डाटा डिक्शनरी को अपडेट करने से पहले और बाद में एक COMMIT करता है। –

2

एक अच्छा exaplample ObiWanKenobi provded ओरेकल लेनदेन की एक विस्तृत विवरण ओरेकल के Chapter 4 में पाया जा सकता के साथ साथ अवधारणा गाइड (जो लिंक मैंने प्रदान किया है वह 10.2 के लिए जाता है, आप ओरेकल वेबसाइट पर भी अपने संस्करण के लिए उपयुक्त दस्तावेज़ ढूंढ सकते हैं)। मेरा सुझाव है कि आप इस अध्याय को यह समझने के लिए पढ़ते हैं कि ओरेकल लेनदेन प्रबंधन को कैसे प्रबंधित करता है, और ओककल डीबी कैसे काम करता है, इस बारे में अवांछित जानकारी के लिए दस्तावेज़ पूरी तरह से जानकारी का एक अच्छा टुकड़ा है।

संबंधित मुद्दे