यह ओरेकल द्वारा डिजाइन का निर्णय था, शायद 20 साल पहले बनाया गया था। यह वह डिज़ाइन नहीं है जिसका मैंने उपयोग किया होगा। ध्यान दें कि यह अंतर्निहित ओसीआई के एसक्यूएल * प्लस की संपत्ति प्रतीत नहीं होता है।
यदि सत्र अचानक समाप्त हो जाता है, AFAIK, सत्र की उम्मीद है, जैसा कि आप उम्मीद करेंगे। इसलिए, उदाहरण के लिए, यदि कोई एसआईजीकेआईएल को एसक्यूएल प्लस भेजता है, तो सत्र का लेनदेन वापस लुढ़का जाना चाहिए। लेकिन यदि SQL प्लस सत्र गर्व से समाप्त होता है (ईओएफ या निकास कमांड), तो उसके अनंत ज्ञान में एसक्यूएल * प्लस जो भी आपने अभी तक किया है उसे करने का फैसला करता है।
क्यों - मेरे पास एक सिद्धांत है। एसक्यूएल मानक डेटाबेस में, आप हमेशा एक लेनदेन में होते हैं, भले ही आपके द्वारा किए गए एकमात्र ऑपरेशन एक चयन कथन है। यदि आप प्रतिबद्ध नहीं हैं, तो आपके द्वारा किए गए किसी भी बदलाव को वापस ले जाया जाता है। स्क्रिप्टेड ऑपरेशंस के अंत में प्रतिबद्धता को जोड़ना भूलना आसान है, इसलिए इसे डिफ़ॉल्ट व्यवहार करने से डेटाबेस को बदलने के लिए किसी स्क्रिप्ट पर कितनी बार दौड़ने की संख्या कम हो जाती है और फिर यह देखने के लिए दूसरी स्क्रिप्ट चलाती है कि परिवर्तन सही तरीके से प्रभावी हुए हैं या नहीं। अन्य डीबीएमएस 'ऑटो-प्रतिबद्ध' जैसे मोड के साथ इसकी आवश्यकता को रोकते हैं, जहां प्रत्येक कथन एक स्टैंडअलोन लेनदेन है, जो स्वचालित रूप से पूरा होने पर प्रतिबद्ध होता है। यह ऑपरेशन का एक उपयोगी तरीका है। अन्य सिस्टम एक मोड प्रदान करते हैं जहां आप स्वत: प्रतिबद्धता में होते हैं जब तक कि आप एक स्पष्ट BEGIN कार्य कथन चलाते हैं, जहां (निश्चित रूप से), आप संबंधित COMMIT या रोलबैक तक लेनदेन में हैं। मुझे 'मोड एएनएसआई' डेटाबेस द्वारा पकड़ा गया है जो यह सुनिश्चित करने के लिए पर्याप्त रूप से नहीं कर रहा है कि जब मैं मायने रखता हूं, तो मैं प्रतिबद्ध हूं, लेकिन मैं जो सॉफ़्टवेयर उपयोग करता हूं (ओरेकल नहीं) अभी भी चुपचाप काम करने के बजाए अनचाहे काम को वापस ले जाता है - और मैं चाहता हूं नाखुश हो अगर यह अन्यथा काम करने के लिए बदल दिया गया था। (मुझे लगता है कि एक कॉन्फ़िगर करने योग्य डिफ़ॉल्ट ठीक हो सकता है; मुझे अभी भी लगता है कि रोलबैक असम्बद्ध बेहतर डिफ़ॉल्ट है, क्योंकि यह अनजान के लिए एक उपद्रव है; डेटाबेस को गलती से भ्रष्ट करने का कम खतरा है, और यह मेरे लिए सबसे महत्वपूर्ण है।)
(कारण नोटिस: यह कोई है जो एक और डीबीएमएस विक्रेता के लिए काम करता है से दूसरे हाथ जानकारी है हालांकि, यह है, सही जहाँ तक मुझे पता है, और एक दशक से अधिक की अवधि में संचित जानकारी के आधार पर। । और विभिन्न मंचों में संबंधित सवाल पूछने के बाद)
स्रोत
2009-09-02 14:52:46
परिवर्तन के बारे में - वहाँ स्क्रिप्ट है कि अगर डिफ़ॉल्ट व्यवहार बदल रहे थे टूट जाएगा के हजारों होने के लिए बाध्य कर रहे हैं। अगर यह कॉन्फ़िगर करने योग्य विकल्प (किसी भी तरह) था, तो शायद डिफ़ॉल्ट को बदलना ठीक होगा, लेकिन अन्यथा नहीं। यह सॉफ़्टवेयर के साथ जीवन है जिसे लगभग 1 मिनट से अधिक समय तक फ़ील्ड किया गया है - आप आसानी से निर्णय नहीं बदल सकते हैं। –
मुझे लगता है कि यह आसानी से बदला जा सकता है। मुझे एसक्यूएल * प्लस के साथ समस्याएं आ रही हैं जो ऑटोोकॉमिटिंग नहीं करती हैं और वास्तव में लोगों को भ्रमित करती हैं, या शायद यह थी कि ऐप अभी भी खुला था क्योंकि यह अभी तक प्रतिबद्ध नहीं था। – wowest
यह नया 11gR2 एसक्यूएल पर एक विकल्प * प्लस –