अस्थायी डेटा को संग्रहीत करते समय वैश्विक अस्थायी तालिकाएँ सहायक होती हैं जो केवल लेन-देन या सत्र अवधि के लिए आवश्यक होती हैं। नियमित तालिकाओं के विपरीत, सत्र या लेन-देन समाप्त होने पर वैश्विक अस्थायी तालिकाएँ स्वचालित रूप से हटा दी जाती हैं। इसलिए, उन्हें सामान्य तालिकाओं की तरह स्पष्ट रूप से छोड़ने की आवश्यकता नहीं है। हालाँकि, वैश्विक अस्थायी तालिकाएँ केवल वर्तमान सत्र के लिए दृश्यमान हैं, इसलिए उन्हें अन्य सत्रों या उपयोगकर्ताओं द्वारा एक्सेस नहीं किया जा सकता है।
ओरेकल में, एक वैश्विक अस्थायी तालिका 'वैश्विक अस्थायी तालिका बनाएँ' कथन का उपयोग करके बनाई गई एक विशेष प्रकार की तालिका है। यह कथन नियमित 'तालिका बनाएँ' कथन के समान है, लेकिन इसमें 'वैश्विक अस्थायी' कीवर्ड शामिल है, यह निर्दिष्ट करने के लिए कि तालिका एक वैश्विक अस्थायी तालिका है।
'वैश्विक अस्थायी तालिका बनाएँ' कथन का वाक्य विन्यास इस प्रकार है:
वैश्विक अस्थायी तालिका बनाएं तालिका_नाम (
कॉलम 1 डेटाटाइप [न्यूल | शून्य नहीं],
कॉलम 2 डेटाटाइप [न्यूल | शून्य नहीं],
...
) [कमिट पर {DELETE | PRESERVE} पंक्तियां];
इस सिंटैक्स में, table_name वैश्विक अस्थायी तालिका का नाम है जिसे आप बनाना चाहते हैं। कॉलम 1, कॉलम 2, आदि तालिका में कॉलम के नाम और डेटा प्रकार हैं।
ON COMMIT खंड निर्दिष्ट करता है कि क्या तालिका में पंक्तियों को हटा दिया जाएगा या वर्तमान लेनदेन के प्रतिबद्ध होने पर संरक्षित किया जाएगा। यदि ON COMMIT क्लॉज परिभाषित नहीं है तो डेटाबेस इंजन ON COMMIT DELETE ROWS विकल्प का उपयोग करेगा।
जैसा कि बताया गया है, ध्यान रखें कि अस्थायी तालिका में डेटा निजी है। इसका अर्थ यह है कि तालिका बनाने वाले सत्र के अलावा कोई अन्य सत्र इसे एक्सेस नहीं कर सकता है।
वैश्विक अस्थायी तालिका उदाहरण बनाना
आइए Oracle डेटाबेस में क्रिएट टेम्परेरी टेबल स्टेटमेंट का उपयोग करने के कुछ व्यावहारिक उदाहरण देखें।
नीचे दिखाए गए उदाहरण क्वेरी पर विचार करें:
वैश्विक अस्थायी तालिका बनाएँ temp_sales (product_id NUMBER(10) NULL नहीं,
बिक्री_दिनांक दिनांक शून्य नहीं है,
बिक्री राशि संख्या (10,2) पूर्ण नहीं है
) कमिट डिलीट रो पर;
उपरोक्त उदाहरण में, हम ON COMMIT DELETE ROWS विकल्प का उपयोग करके एक अस्थायी तालिका बनाते हैं।
फिर हम कुछ नमूना डेटा इस प्रकार सम्मिलित कर सकते हैं:
TEMP_SALES (उत्पाद_आईडी, बिक्री_तिथि, बिक्री_माउन्ट) मूल्यों में प्रवेश करें (1, दिनांक '2022-10-01', 100);TEMP_SALES (उत्पाद_आईडी, बिक्री_तिथि, बिक्री_माउन्ट) मूल्यों में प्रवेश करें (2, दिनांक '2022-10-02', 500);
TEMP_SALES (उत्पाद_आईडी, बिक्री_तिथि, बिक्री_माउन्ट) मूल्यों में प्रवेश करें (3, दिनांक '2022-10-03', 130);
उसके बाद, आप लेन-देन इस प्रकार कर सकते हैं:
वादा करना;प्रतिबद्ध होने के बाद, डेटाबेस इंजन अस्थायी तालिका में सभी डेटा को कमिट क्लॉज में निर्दिष्ट के रूप में छोटा कर देगा।
उदाहरण 2
निम्न उदाहरण दिखाता है कि एक तालिका कैसे बनाई जाए जो कमिट पर पंक्तियों को संरक्षित करे:
वैश्विक अस्थायी तालिका बनाएँ temp_sales (product_id NUMBER(10) NULL नहीं,
बिक्री_दिनांक दिनांक शून्य नहीं है,
बिक्री राशि संख्या (10,2) पूर्ण नहीं है
) प्रतिबद्ध संरक्षित पंक्तियों पर;
फिर हम नमूना पंक्तियाँ जोड़ सकते हैं और दिखाए गए अनुसार कमिट कर सकते हैं:
TEMP_SALES (उत्पाद_आईडी, बिक्री_तिथि, बिक्री_माउन्ट) मूल्यों में प्रवेश करें (1, दिनांक '2022-10-01', 100);TEMP_SALES (उत्पाद_आईडी, बिक्री_दिनांक, बिक्री_माउन्ट) मूल्यों में प्रवेश करें (2, दिनांक '2022-10-02', 500);
TEMP_SALES (उत्पाद_आईडी, बिक्री_दिनांक, बिक्री_माउन्ट) मूल्यों में प्रवेश करें (3, दिनांक '2022-10-03', 130);
वादा करना;
इस मामले में, डेटा को कमिट ऑपरेशन के बाद संरक्षित किया जाना चाहिए, जैसा कि नीचे दिए गए चयन कथन द्वारा दिखाया गया है:
* TEMP_SALES से चुनें;आउटपुट:
निष्कर्ष
ओरेकल में अस्थायी टेबल बनाने के लिए 'अस्थायी तालिका बनाएँ' कथन एक शक्तिशाली उपकरण है। अस्थायी तालिकाएँ केवल लेन-देन या सत्र के लिए आवश्यक अस्थायी डेटा को संग्रहीत करने के लिए उपयोगी होती हैं। 'अस्थायी तालिका बनाएँ' कथन आपको अस्थायी तालिका की संरचना और स्तंभों को परिभाषित करने और यह निर्दिष्ट करने की अनुमति देता है कि लेन-देन किए जाने पर पंक्तियों को कैसे नियंत्रित किया जाएगा। परिणामस्वरूप, अस्थायी तालिकाओं का उपयोग करने से आपके प्रश्नों और अनुप्रयोगों के प्रदर्शन और दक्षता में सुधार हो सकता है और आपके डेटाबेस में आवश्यक स्थायी संग्रहण स्थान की मात्रा कम हो सकती है।