pl sql package oracle pl sql package tutorial with examples
PL SQL पैकेज, इसके फायदे, विशिष्टताओं और संरचना के बारे में जानें:
इस लेख में, हम जारी रखेंगे PL / SQL श्रृंखला । में पीएल एसक्यूएल रिकॉर्ड्स ट्यूटोरियल, हमने प्रोग्रामिंग उदाहरणों के साथ रिकॉर्ड्स और रिकॉर्ड प्रकारों के बारे में सीखा है।
यहां हम पीएल / एसक्यूएल में पैकेज और पैकेज की कुछ महत्वपूर्ण विशेषताओं का पता लगाएंगे। साथ ही, हम उन पर कुछ बुनियादी कार्यों पर चर्चा करेंगे।
हम PL / SQL और इसके उपप्रोग्राम में dbms_ouput पैकेजों पर भी चर्चा करेंगे।
सीखने के साथ चलो शुरू करो !!
आप क्या सीखेंगे:
PL SQL पैकेज
एक पैकेज स्कीमा के रूप में एक वस्तु है जो पीएल / एसक्यूएल में तार्किक रूप से जुड़े आइटम, प्रकार और उपप्रोग्राम को अलग करता है। एक पैकेज में दो भाग होते हैं: पैकेज विनिर्देश तथा पैकेज बॉडी या परिभाषा ।
पैकेज विनिर्देश अनुप्रयोग के लिए एक अंतरफलक की तरह है और इसका उपयोग चर, स्थिरांक, प्रकार, अपवाद, कर्सर और उपप्रोग्राम घोषित करने के लिए किया जाता है। एक पैकेज का शरीर पैकेज विनिर्देश में घोषित उपप्रोग्राम और कर्सर को लागू करता है।
हम पैकेज विनिर्देश (जिसे पैकेज का इंटरफ़ेस भी कहा जाता है) को छुए बिना पैकेज बॉडी को अपडेट, डिबग या बदल सकते हैं।
पीएल / एसक्यूएल पैकेज के लाभ
पैकेज के लाभ नीचे सूचीबद्ध हैं:
- यह हमारे कोड को मॉड्यूलरिटी देता है।
- यह एप्लिकेशन को आसानी से डिजाइन करने में मदद करता है।
- PLSQL पैकेज सार्वजनिक और निजी वस्तुओं, डेटा प्रकारों और उपप्रोग्राम की मदद से जानकारी को छिपाने में मदद करता है।
- पैकेज डेटाबेस में इसे स्टोर करने की आवश्यकता के बिना सभी लेनदेन पर जानकारी बनाए रखने की अनुमति देता है।
- पैकेज निष्पादन के प्रदर्शन को बेहतर बनाने में मदद करते हैं।
पैकेज विशिष्टता
एक पैकेज विनिर्देश पैकेज के लिए एक इंटरफेस की तरह है। यह चर, स्थिरांक, प्रकार, अपवाद, शाप और उपप्रकार की घोषणा का ध्यान रखता है। इस प्रकार इसमें पैकेज सामग्री के बारे में सभी विवरण हैं, लेकिन उपप्रोग्राम का कार्यान्वयन नहीं है।
एक पैकेज विनिर्देश के अंदर की वस्तुएं सार्वजनिक वस्तुएं हैं। एक पैकेज निकाय के भीतर लागू सभी उपप्रोग्राम निजी वस्तुएं हैं। हम पैकेज विनिर्देश के भीतर कई वैश्विक चर, कार्यों या प्रक्रियाओं की घोषणा कर सकते हैं।
एक पैकेज विनिर्देश एक स्वतंत्र इकाई है और एक पैकेज निकाय के बिना मौजूद हो सकता है।
कोड कार्यान्वयन:
CREATE PACKAGE citi AS FUNCTION p_strng RETURN VARCHAR2; END citi; /
उपरोक्त कोड का आउटपुट:
पैकेज बॉडी
पैकेज बॉडी में पैकेज विनिर्देश में घोषित कर्सर और उपप्रोग्राम का कार्यान्वयन होता है। यह याद रखना चाहिए कि पैकेज बॉडी में लागू किए गए सबप्रोग्राम को पैकेज के बाहर एक्सेस किया जा सकता है बशर्ते उन्हें पैकेज विनिर्देश में घोषित किया गया हो।
पैकेज विनिर्देश और निकाय में घोषित उपप्रोग्राम सटीक होना चाहिए। यह तुलना उनके हेडर के टोकन द्वारा की जाती है। यदि वे मेल नहीं खाते हैं, तो PL / SQL एक अपवाद फेंकता है।
सॉफ्टवेयर इंजीनियरिंग में जीवन चक्र मॉडल
पैकेज बॉडी में अन्य उपप्रोग्राम हो सकते हैं जो पैकेज विनिर्देश में घोषित नहीं होते हैं। उस स्थिति में, वे केवल उस पैकेज बॉडी के लिए निजी हैं। बनाएँ पैकेज शरीर वह कीवर्ड है जो पैकेज बॉडी बनाने के लिए उपयोग किया जाता है।
आइए हम इसके लिए पैकेज बॉडी बनाने के लिए एक उदाहरण लेते हैं अन्य लोग पैकेज।
पैकेज बॉडी के साथ कोड कार्यान्वयन।
CREATE OR REPLACE PACKAGE BODY citi AS --function implemented FUNCTION p_strng RETURN VARCHAR2 IS BEGIN RETURN 'Software Testing Help!'; END p_strng; END citi; /
उपरोक्त कोड का आउटपुट होना चाहिए।
पैकेज तत्वों को देखें
जैसा कि हम पैकेज विनिर्देश में तत्वों को घोषित करने और पैकेज बॉडी में उन्हें लागू करने के साथ किया जाता है, हमें इन तत्वों को संदर्भित करने की आवश्यकता है। पैकेज तत्वों में फ़ंक्शंस, प्रक्रियाएँ और चर शामिल होते हैं।
पैकेज के इन सार्वजनिक तत्वों को पैकेज नाम के बाद डॉट नाम () द्वारा अलग किए गए तत्व नाम से एक्सेस किया जा सकता है।
वाक्य - विन्यास:
package_name.element_name;
तत्वों तक पहुँचने के लिए कोडिंग कार्यान्वयन:
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
उपरोक्त कोड का आउटपुट:
एक पीएल SQL पैकेज बनाएँ
यदि पैकेज को सत्र में कहा जाता है या संदर्भित किया जाता है, तो उस पैकेज का एक नया उदाहरण PL / SQL में बनाया जाता है। हमारे पास पैकेज के तत्वों को इनिशियलाइज़ करने या कोड के पैकेज इनिशियलाइज़ेशन ब्लॉक से निर्माण के दौरान कोई अन्य क्रिया करने का विकल्प है। यह पैकेज तत्वों के आरंभ के बाद पैकेज बॉडी के भीतर कोड का निष्पादन योग्य ब्लॉक है।
पैकेज निर्माण का सिंटैक्स:
CREATE (OR REPLACE) PACKAGE BODY IS BEGIN END
यहाँ, package_n पैकेज का नाम है।
विंडोज़ में एक एपीके फ़ाइल खोलें
ओवरलोडिंग एक पैकेज
समान नाम वाले पैकेज में कई सबप्रोग्राम हो सकते हैं। यदि हम विषम डेटा प्रकारों के साथ समरूप पैरामीटर चाहते हैं तो यह सुविधा उपयोगी है। पैकेज के भीतर ओवरलोडिंग की अवधारणा प्रोग्रामरों को स्पष्ट रूप से उल्लेख करने की अनुमति देती है कि वे किस प्रकार की कार्रवाई करना चाहते हैं।
ओवरलोडिंग प्रक्रिया के साथ कोडिंग कार्यान्वयन। (पैकेज बनाया):
CREATE PACKAGE overloadingprocedure AS Procedure overl_method (p varchar2); Procedure overl_method (numbr number); END overloadingprocedure; /
उपरोक्त कोड का आउटपुट:
ओवरलोडिंग प्रक्रिया के साथ कोडिंग कार्यान्वयन। (पैकेज बॉडी बनाई)
CREATE OR REPLACE PACKAGE BODY overloadingprocedure AS --procedure implemented Procedure overl_method (p varchar2) AS BEGIN DBMS_OUTPUT.PUT_LINE ('First Procedure: ' || p); END; --procedure implemented Procedure overl_method (numbr number) AS BEGIN DBMS_OUTPUT.PUT_LINE ('Second Procedure: ' || numbr); END; END; /
उपरोक्त कोड का आउटपुट:
ओवरलोडिंग प्रक्रिया के साथ कोडिंग कार्यान्वयन। (पैकेज प्रक्रिया संदर्भित)
BEGIN overloadingprocedure.overl_method ('Software Testing Help'); overloadingprocedure.overl_method (1); END;
उपरोक्त कोड का आउटपुट:
PLSQL पैकेज निर्भरता
पीएल / एसक्यूएल में पैकेज निर्भरता नीचे सूचीबद्ध हैं:
- एक पैकेज विनिर्देश एक स्वतंत्र पहचान है।
- पैकेज बॉडी पैकेज स्पेसिफिकेशन पर निर्भर है।
- एक पैकेज बॉडी को केवल अलग से संकलित किया जा सकता है। हालाँकि, यदि पैकेज विनिर्देश संकलित किया जाता है, तो शरीर को फिर से संकलित करने की आवश्यकता होती है।
- पैकेज बॉडी के अंदर फ़ंक्शन या एक प्रक्रिया जो निजी तत्वों पर निर्भर करती है, उसे निजी तत्वों की घोषणा के बाद लागू किया जाना चाहिए।
पीएल एसक्यूएल में पैकेज बनाने के लिए दिशानिर्देश:
- एक पैकेज को सामान्य शब्दों में लिखा जाना चाहिए ताकि भविष्य में उनका पुन: उपयोग किया जा सके।
- एक पैकेज में डुप्लिकेट विशेषताओं से बचें।
- पैकेज विनिर्देश में ठीक से डिज़ाइन किए गए एप्लिकेशन की कुंजी है। पैकेज बॉडी बनाने से पहले पैकेज विनिर्देश पूरा करें।
- एक पैकेज विनिर्देश में केवल आइटम, उपप्रोग्राम और प्रकार होने चाहिए जो पैकेज उपयोगकर्ताओं के लिए सुलभ होने चाहिए। इसमें अनावश्यक कार्यान्वयन की जानकारी नहीं होनी चाहिए।
- पैकेज विनिर्देश में सीमित संख्या में आइटम होने चाहिए। यह कोड को पुन: सहेजने के लिए समय की बचत करेगा क्योंकि पैकेज विनिर्देश में संशोधन के लिए पैकेज को संदर्भित करने वाले सभी उपप्रोग्रामों को फिर से जोड़ने के लिए PL / SQL की आवश्यकता होती है।
पैकेज की जानकारी पीएल / एसक्यूएल में
पैकेज के स्रोत, उपप्रोग्राम और अतिभारित आइटम जैसे सभी प्रासंगिक विवरण एक पैकेज बनने के बाद डेटा परिभाषा तालिकाओं में संग्रहीत किए जाते हैं।
डेटा परिभाषा तालिका की सूची इस प्रकार है:
- USER_PROCEDURES: इस तालिका में वर्तमान उपयोगकर्ता के लिए अतिभारित जानकारी जैसे कि अतिभारित वस्तुएं, object_id, और इत्यादि शामिल हैं।
- ALL_PROCEDURES: इस तालिका में सभी उपयोगकर्ताओं के लिए अति-लोड की गई वस्तुएं, जैसे कि अतिभारित वस्तुएं, object_id, आदि शामिल हैं।
- USER_SOURCE: इस तालिका में वर्तमान उपयोगकर्ता के लिए ऑब्जेक्ट स्रोत की जानकारी है।
- ALL_SOURCE: इस तालिका में सभी उपयोगकर्ताओं के लिए ऑब्जेक्ट स्रोत की जानकारी है।
- ALL_OBJECT: इस तालिका में सभी उपयोगकर्ताओं के लिए पैकेज पर जानकारी जैसे कि creation_date, object_id और अन्य ऑब्जेक्ट विवरण शामिल हैं।
पीएल / एसक्यूएल में डीबीएमएस आउटपुट
DBMS_OUTPUT पैकेज पीएल / एसक्यूएल आउटपुट को उपप्रोग्राम और कोड के ब्लॉक से प्रदर्शित करने की अनुमति देता है। यह हमें डिबग करने, हमारे कोड का परीक्षण करने और संदेश भेजने में मदद करता है।
put_line प्रक्रिया आउटपुट डेटा को बफ़र के लिए उत्पादन करती है। की मदद से जानकारी प्रदर्शित की जाती है लाइन में आओ प्रक्रिया या SQL * प्लस में SERVEROUTPUT पर कॉन्फ़िगर करके।
DBMS_OUTPUT पैकेज में निम्नलिखित उपप्रोग्राम शामिल हैं:
क्रम सं। | नाम | प्रयोजनों |
---|---|---|
1 | DBMS_OUTPUT.DISABLE | संदेश आउटपुट को सीमित करता है। |
दो | DBMS_OUTPUT.ENABLE (बफर 200 200 में बफर) | संदेश आउटपुट की अनुमति देता है। यदि बफर NULL पर सेट है, तो यह बफर के असीमित आकार का प्रतिनिधित्व करता है। |
३ | DBMS_OUTPUT.GET_LINE (लाइन से बाहर, स्थिति OUT NUMBER) | एक पंक्ति में एक बफ़र्ड जानकारी प्राप्त करता है। |
४ | DBMS_OUTPUT.NEW_LINE | लाइन मार्कर के अंत को समाप्त करता है। |
५ | DBMS_OUTPUT.PUT (VARCHAR में आइटम) | बफर में एक अधूरी रेखा डालता है। |
६ | DBMS_OUTPUT.PUT_LINE (VARCHAR में आइटम) | बफर में एक पूरी लाइन डालता है। |
कोड कार्यान्वयन:
DECLARE BEGIN DBMS_OUTPUT.PUT_LINE ('Software Testing Help!'); END;
उपरोक्त कोड का आउटपुट:
अक्सर पूछे जाने वाले प्रश्न और उत्तर
Q # 1) PL SQL में पैकेज क्या है?
उत्तर: एक पैकेज एक वस्तु स्कीमा है जो तार्किक रूप से संबंधित चर, स्थिरांक, श्रापकर्ता, उपप्रोग्राम और प्रकार को श्रेणी देता है।
Q # 2) PL SQL पैकेज के क्या लाभ हैं?
उत्तर: पैकेज के लाभ नीचे सूचीबद्ध हैं:
- पैकेज के साथ, एप्लिकेशन डिजाइन करना आसान हो जाता है।
- पैकेज के साथ, हम इनकैप्सुलेशन प्राप्त कर सकते हैं।
- निष्पादन की गति के मामले में पैकेज बेहतर प्रदर्शन पाने में मदद करते हैं।
- कोड पैकेज के साथ अधिक मॉड्यूलर हो जाता है।
क्यू # 3) हम विनिर्देश के बिना एक पैकेज शरीर बना सकते हैं?
उत्तर: हाँ, हम पैकेज विनिर्देश के बिना एक पैकेज निकाय बना सकते हैं।
Q # 4) PL SQL में Dbms_output Put_line क्या है?
उत्तर: Dbms_output put_line Oracle में एक प्रक्रिया है जो हमें एक सपाट फ़ाइल या PL / आउटपुट आउटपुट स्क्रीन में जानकारी लिखने में सक्षम बनाती है।
Q # 5) Dbms_output क्या है?
उत्तर: Dbms_output एक डिफ़ॉल्ट पैकेज है जो हमें डिबगिंग जानकारी, आउटपुट प्रदर्शित करने और उपप्रोग्राम, ट्रिगर, पैकेज और कोड के PL / SQL ब्लॉक से संदेश भेजने की अनुमति देता है
कैसे एक swf फ़ाइल चलाने के लिए
निष्कर्ष
इस ट्यूटोरियल में, हमने पीएल SQL पैकेज के बारे में कुछ बुनियादी अवधारणाओं पर विस्तार से चर्चा की है जो वास्तविक अनुप्रयोगों में उनका उपयोग करने के लिए आवश्यक हैं।
हमने नीचे सूचीबद्ध निम्नलिखित विषयों को कवर किया है:
- पैकेज और उनकी संरचना।
- पैकेज की विभिन्न विशेषताएं।
- DBMS आउटपुट।
- DBMS_OUTPUT पैकेज के उपप्रोग्राम।
<< PREV Tutorial | अगला ट्यूटोरियल >>
अनुशंसित पाठ
- पीएल SQL ट्यूटोरियल उदाहरण के साथ शुरुआती के लिए | पीएल / एसक्यूएल क्या है
- पीएल SQL रिकॉर्ड ट्यूटोरियल उदाहरण के साथ
- PL SQL कर्सर और स्ट्रिंग्स: कोड उदाहरणों के साथ ट्यूटोरियल
- उदाहरणों के साथ अजगर डेटाइम ट्यूटोरियल
- Oracle डाटाबेस अनुप्रयोग विकास: Oracle SQL और PL / SQL
- टॉप ओरेकल साक्षात्कार प्रश्न: ओरेकल बेसिक, एसक्यूएल, पीएल / एसक्यूएल प्रश्न
- SQL बनाम MySQL बनाम SQL सर्वर के बीच अंतर (उदाहरण के साथ)
- शीर्ष ओरेकल फॉर्म और रिपोर्ट साक्षात्कार प्रश्न