मूल गतिशील SQL
नेटिव डायनेमिक एसक्यूएल सीखने से पहले, एक छोटी पृष्ठभूमि महत्वपूर्ण है। Oracle ने मई 1994 में अपने डेटाबेस संस्करण 7.1 (a.k.a. Oracle 7.1) में डायनेमिक SQL अवधारणा को पेश करके सभी डेवलपर्स को मध्य गर्मियों का उपहार दिया। इसके साथ इसने डेवलपर्स को "DBMS_SQL" पैकेज के माध्यम से डायनेमिक SQL लिखने में सक्षम बनाया।
लेकिन धीरे-धीरे DBMS_SQL लाइब्रेरी ने अपना आकर्षण खोना शुरू कर दिया। इसके "इतना आसान नहीं" सिंटैक्स के कारण, "सुस्त प्रदर्शन" और "असमर्थित उपयोगकर्ता-परिभाषित प्रकार"। इन सभी कमियों ने किसी और चीज की जरूरत को बढ़ा दिया। जो डेवलपर्स को उनके दिमाग पर अत्यधिक तनाव डाले बिना एक अच्छी तरह से अनुकूलित कोड लिखने में मदद कर सकता है।
Oracle ने अपना समय लिया, लगभग पाँच वर्ष। अंत में, इसने फरवरी 1999 में Oracle डेटाबेस 8i के लॉन्च के साथ या सटीक Oracle डेटाबेस संस्करण 8.15 के साथ डायनेमिक SQL का एक उन्नत संस्करण जारी किया। इसकी स्थिर प्रकृति के कारण डायनेमिक SQL का यह उन्नत संस्करण PL/ का मूल हिस्सा बन गया। SQL भाषा और इसका नाम "Native Dynamic SQL" पड़ा जिसके माध्यम से इसे अब एक दिन जाना जाता है। यह Oracle डेटाबेस में नेटिव डायनेमिक SQL की उत्पत्ति का संक्षिप्त परिचय है।
नेटिव डायनेमिक SQL को समझने के लिए हमें सबसे पहले यह समझना होगा कि Oracle डेटाबेस में स्टैटिक SQL क्या है?
स्टेटिक SQL क्या है?
जैसा कि नाम से पता चलता है कि कोई भी SQL स्टेटमेंट जो रनटाइम के दौरान नहीं बदलता है, एक स्टेटिक SQL स्टेटमेंट कहलाता है।
स्टेटिक एसक्यूएल स्टेटमेंट्स का फायदा यह है कि हम पहले से ही जानते हैं कि जिन सभी डिपेंडेंट ऑब्जेक्ट्स पर हम स्टेटमेंट लिख रहे हैं, वे मौजूद हैं या नहीं। स्टेटिक एसक्यूएल स्टेटमेंट का एक और फायदा यह है कि हम उन्हें अपने एप्लिकेशन में हार्डकोड करते हैं। इस प्रकार हम उन्हें इष्टतम प्रदर्शन के लिए ट्यून कर सकते हैं।
अब जब हमने जान लिया है कि स्टेटिक एसक्यूएल क्या है, तो आइए देखें कि डायनेमिक एसक्यूएल क्या है?
नेटिव डायनेमिक SQL क्या है?
जैसा कि नाम से पता चलता है, कोई भी SQL कथन जो रनटाइम पर निर्मित होता है उसे गतिशील SQL कहा जाता है . ये बयान मक्खी पर बने हैं। इसलिए उन्हें एप्लिकेशन में हार्डकोड नहीं किया जा सकता है। यह बदले में उनके लचीलेपन को बढ़ाता है।
एक ओर स्थिर SQL आपको अपने PL/SQL ब्लॉक के अंदर केवल DML कथन निष्पादित करने देता है। दूसरी ओर डायनेमिक SQL आपको DDL स्टेटमेंट्स को निष्पादित करने में सक्षम बनाता है और वह भी आपके PL/SQL ब्लॉक के अंदर। इस प्रकार डायनेमिक एसक्यूएल का उपयोग करके आप एक टेबल बना सकते हैं या एक इंडेक्स ड्रॉप कर सकते हैं या अपने पीएल/एसक्यूएल ब्लॉक के अंदर अपनी टेबल को छोटा कर सकते हैं। यह स्थिर SQL पर नेटिव डायनेमिक SQL का एक लाभ है।
नेटिव डायनेमिक PL/SQL क्या है?
डायनेमिक SQL के समान, रनटाइम पर PL/SQL कोड बनाने की प्रक्रिया को डायनेमिक PL/SQL कहा जाता है।
अब आइए Oracle डेटाबेस में DBMS_SQL पैकेज पर नेटिव डायनेमिक SQL के लाभों पर एक नज़र डालें।
नेटिव डायनेमिक SQL के फ़ायदे
- उपयोग में आसान कोड: DBMS_SQL पैकेज की तुलना में, नेटिव डायनेमिक SQL का उपयोग करना बहुत आसान है। यह मुख्य रूप से इसलिए है क्योंकि इसे SQL में ही शामिल किया गया है। यह पीएल/एसक्यूएल कोड के भीतर स्टेटिक एसक्यूएल का उपयोग करने के बराबर है। इसके अलावा मूल गतिशील SQL कोड DBMS_SQL पैकेज की तुलना में अधिक कॉम्पैक्ट और पठनीय है। सख्त अनुक्रमिक प्रक्रियाओं के कारण बाद वाले को बड़ी मात्रा में कोड की आवश्यकता होती है। यह इसे और अधिक जटिल बनाता है।
- संहिता के निष्पादन में सुधार: पीएल/एसक्यूएल दुभाषिया में देशी गतिशील एसक्यूएल के लिए एक अंतर्निहित समर्थन है। इस प्रकार जो प्रोग्राम इसका उपयोग करते हैं वे DBMS_SQL पैकेज का उपयोग करने वालों की तुलना में अधिक कुशल हैं। मूल रूप से मूल गतिशील एसक्यूएल एक ऑपरेशन में तैयारी, बाध्यकारी और निष्पादन से जुड़े चरणों को जोड़ती है। यह प्रक्रिया कॉल और डेटा कॉपी ओवरहेड को कम करता है जिससे प्रदर्शन में सुधार होता है।
- उपयोगकर्ता-परिभाषित प्रकारों के लिए समर्थन: DBMS_SQL पैकेज के विपरीत, मूल गतिशील SQL सभी प्रकार के उपयोगकर्ता-परिभाषित प्रकारों का समर्थन करता है। उदाहरण के लिए उपयोगकर्ता द्वारा परिभाषित ऑब्जेक्ट, आरईएफ और संग्रह।
- रिकॉर्ड में लाने के लिए सहायता: एक क्वेरी के परिणाम वाली पंक्तियों को मूल डायनेमिक SQL का उपयोग करके सीधे PL/SQL रिकॉर्ड में लाया जा सकता है। DBMS_SQL पैकेज के साथ यह संभव नहीं है।
Oracle डेटाबेस में डायनेमिक SQL के कार्य क्या हैं?
- सबसे पहले, किसी भी बाइंड वैरिएबल के उपयोग के साथ डायनेमिक डीडीएल और डीएमएल।
- दूसरा, डायनेमिक DQL और
- तीसरा, डायनेमिक डीएमएल बाइंड वैरिएबल की एक ज्ञात सूची का उपयोग कर रहा है
ये तीन कार्यात्मकताएं हैं जो डायनामिक एसक्यूएल आपके पीएल/एसक्यूएल प्रोग्रामिंग में जोड़ती हैं।
तो, हम Oracle डेटाबेस में डायनेमिक SQL का उपयोग कैसे करते हैं?
Oracle डेटाबेस में डायनेमिक SQL और PL/SQL का उपयोग करने के दो सबसे सामान्य तरीके हैं:
- तत्काल स्टेटमेंट निष्पादित करें और
- ओपन-फॉर, फ़ेच और क्लोज़ ब्लॉक।
निष्पादन तत्काल कथन का उपयोग तब किया जाता है जब क्वेरी एकल पंक्ति डेटा लौटा रही हो। यदि क्वेरी मल्टी रो डेटा लौटा रही है तो आप ओपन-फॉर, फ़ेच और क्लोज़ ब्लॉक की मदद ले सकते हैं। हम आगामी ट्यूटोरियल में एक्ज़िक्यूट इमीडिएट और ओपन-फॉर, फ़ेच और क्लोज़ ब्लॉक के बारे में विस्तार से जानेंगे।
क्या Oracle डेटाबेस में डायनामिक SQL का उपयोग करने के कोई अन्य तरीके हैं?
ऊपर बताई गई सबसे अधिक इस्तेमाल की जाने वाली विधियों के अलावा, डायनेमिक SQL या PL/SQL का उपयोग करने के अन्य तरीके हैं
- बल्क फ़ेच के साथ
- दूसरा बल्क तत्काल निष्पादन के साथ
- बल्क फ़ोरॉल के साथ और
- अंत में बल्क कलेक्ट इनटू स्टेटमेंट के साथ
हमने पिछली श्रृंखला में बल्क डेटा प्रोसेसिंग पर उपरोक्त सभी कमांड और स्टेटमेंट सीखे हैं।
यदि आप वीडियो ट्यूटोरियल के माध्यम से सीखना पसंद करते हैं तो इसे देखें।
यह Oracle डेटाबेस में नेटिव डायनेमिक SQL का विस्तृत परिचय है। आशा है आपको पढ़कर अच्छा लगा होगा। इस ब्लॉग का लिंक साझा करना सुनिश्चित करें अपने सोशल मीडिया पर अपने दोस्तों के साथ। साथ ही इस श्रृंखला का अनुसरण करने और कुछ नया और दिलचस्प सीखने के लिए YouTube चैनल को सब्सक्राइब करना न भूलें।
धन्यवाद और आपका दिन शुभ हो!