PL / SQL में ऑब्जेक्ट प्रकार क्या है?
ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग विशेष रूप से पुन: प्रयोज्य घटकों और जटिल अनुप्रयोगों के निर्माण के लिए अनुकूल है। वे "ऑब्जेक्ट्स" के बजाय "ऑब्जेक्ट्स" के आसपास आयोजित किए जाते हैं अर्थात प्रोग्राम को एकल एक्शन के बजाय पूरी ऑब्जेक्ट के साथ काम करने और बातचीत करने के लिए डिज़ाइन किया गया है। यह अवधारणा प्रोग्रामर को ऑब्जेक्ट संस्थाओं के स्तर पर विवरणों को पॉप्युलेट और हेरफेर करने की अनुमति देती है।
नीचे दी गई तस्वीर में ऑब्जेक्ट प्रकार का एक उदाहरण दिखाया गया है जिसमें बैंक खाते को ऑब्जेक्ट इकाई माना जाता है। ऑब्जेक्ट विशेषताओं में वे चीजें शामिल हैं जो बैंक खाते में उदाहरण के लिए कुछ विशेषता मान रखते हैं; यह खाता संख्या, बैंक बैलेंस आदि है, जबकि वस्तु विधियां ब्याज दर की गणना, बैंक स्टेटमेंट जनरेट करने आदि जैसी चीजों का वर्णन करती हैं, जिन्हें पूरा करने के लिए कुछ प्रक्रिया की आवश्यकता होती है।
पीएल / एसक्यूएल ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग ऑब्जेक्ट प्रकारों पर आधारित है।
एक ऑब्जेक्ट प्रकार किसी भी वास्तविक दुनिया इकाई का प्रतिनिधित्व कर सकता है। हम इस अध्याय में अधिक वस्तु प्रकारों पर चर्चा करने जा रहे हैं।
इस ट्यूटोरियल में - आप सीखेंगे,
- वस्तु प्रकार के घटक
- Oracle में ऑब्जेक्ट बनाएँ
- वस्तु प्रकार की घोषणा
- कंस्ट्रक्टर्स
- वस्तु प्रकार में निहित
- पीएल / एसक्यूएल ऑब्जेक्ट्स की समानता
वस्तु प्रकार के घटक
PL / SQL ऑब्जेक्ट प्रकार में मुख्य रूप से दो घटक होते हैं।
- गुण
- सदस्य / तरीके
गुण
विशेषताएँ स्तंभ या फ़ील्ड हैं जिसमें डेटा संग्रहीत किया जाता है। प्रत्येक विशेषता को डेटाटाइप में मैप किया जाएगा जो उस विशेषता के लिए प्रसंस्करण और भंडारण प्रकार को परिभाषित करता है। विशेषता किसी भी मान्य PL / SQL डेटाटाइप की हो सकती है, या यह किसी अन्य ऑब्जेक्ट प्रकार की हो सकती है।
सदस्य / तरीके
सदस्य या तरीके उपप्रोग्राम होते हैं जिन्हें ऑब्जेक्ट प्रकार में परिभाषित किया जाता है। उनका उपयोग किसी भी डेटा को स्टोर करने के लिए नहीं किया जाता है। वे मुख्य रूप से ऑब्जेक्ट प्रकार के अंदर प्रक्रिया को परिभाषित करने के लिए उपयोग किया जाता है। उदाहरण के लिए ऑब्जेक्ट प्रकार को पॉप्युलेट करने से पहले डेटा को मान्य करना। उन्हें ऑब्जेक्ट प्रकार अनुभाग में घोषित किया गया है और ऑब्जेक्ट प्रकार के ऑब्जेक्ट प्रकार में परिभाषित किया गया है। ऑब्जेक्ट प्रकार में बॉडी सेक्शन एक वैकल्पिक हिस्सा है। यदि कोई सदस्य मौजूद नहीं है, तो एक वस्तु प्रकार में कोई शरीर का हिस्सा नहीं होगा।
Oracle में ऑब्जेक्ट बनाएँ
ऑब्जेक्ट प्रकार उपप्रोग्राम स्तर पर नहीं बनाए जा सकते, वे केवल स्कीमा स्तर पर बनाए जा सकते हैं। एक बार जब ऑब्जेक्ट प्रकार को स्कीमा में परिभाषित किया जाता है, तो उसी का उपयोग उपप्रोग्राम में किया जा सकता है। ऑब्जेक्ट प्रकार 'क्रिएट टाईप' का उपयोग करके बनाया जा सकता है। ऑब्जेक्ट ऑब्जेक्ट बनाने के बाद ही टाइप बॉडी बनाई जा सकती है।
CREATE TYPEAS OBJECT( ,… );/CREATE TYPE BODY AS OBJECT(MEMBER[PROCEDURE|FUNCTION] IS BEGIN END;… );/
सिंटैक्स स्पष्टीकरण:
- उपर्युक्त वाक्यविन्यास विशेषताओं के साथ 'OBJECT' और विधियों के साथ 'OBJECT-BODY' के निर्माण को दर्शाता है।
- ऑब्जेक्ट बॉडी में तरीके भी ओवरलोड किए जा सकते हैं।
वस्तु प्रकार की घोषणा
PL / SQL में अन्य घटकों की तरह, प्रोग्राम में उपयोग करने से पहले ऑब्जेक्ट प्रकार भी घोषित किए जाने की आवश्यकता होती है।
एक बार ऑब्जेक्ट प्रकार निर्मित हो जाने के बाद इसे उस ऑब्जेक्ट प्रकार के एक वेरिएबल को घोषित करने के लिए सबप्रोग्राम डिक्लेरेशन सेक्शन में उपयोग किया जा सकता है।
जब भी उपप्रोग्राम में किसी भी चर को ऑब्जेक्ट प्रकार के रूप में घोषित किया जाता है, तो रन-टाइम पर ऑब्जेक्ट प्रकार का एक नया उदाहरण बनाया जाएगा, और इस नए बनाए गए उदाहरण को चर नाम से संदर्भित किया जा सकता है। इस तरह, एक एकल ऑब्जेक्ट प्रकार विभिन्न मूल्यों के तहत कई मानों को संग्रहीत कर सकता है।
DECLARE;BEGIN… END;/
सिंटैक्स स्पष्टीकरण:
- उपर्युक्त वाक्य-विन्यास, घोषणात्मक खंड में एक वस्तु प्रकार के रूप में एक चर की घोषणा को दर्शाता है।
एक बार जब चर को एक उपप्रोग्राम में ऑब्जेक्ट प्रकार के रूप में घोषित किया जाता है, तो यह परमाणु रूप से शून्य होगा अर्थात संपूर्ण ऑब्जेक्ट स्वयं एक अशक्त होगा। कार्यक्रम में उनका उपयोग करने के लिए इसे मूल्यों के साथ आरंभीकृत किया जाना चाहिए। इन्हें कंस्ट्रक्टर्स का इस्तेमाल करके इनिशियलाइज़ किया जा सकता है।
कन्स्ट्रक्टर्स किसी ऑब्जेक्ट की निहित विधि है जिसे ऑब्जेक्ट प्रकार के समान नाम के साथ संदर्भित किया जा सकता है। नीचे दिए गए सिंटैक्स में ऑब्जेक्ट प्रकार का इनिशियलाइज़ेशन दिखाया गया है।
DECLARE;BEGIN := ();END;/
सिंटैक्स स्पष्टीकरण:
- उपरोक्त सिंटैक्स एक शून्य मान के साथ ऑब्जेक्ट प्रकार के उदाहरण के आरंभीकरण को दर्शाता है।
- अब ऑब्जेक्ट अपने आप में अशक्त नहीं है क्योंकि इसे प्रारंभ किया गया है, लेकिन ऑब्जेक्ट के अंदर के गुण शून्य होंगे क्योंकि हमने इन विशेषताओं को कोई मान निर्दिष्ट नहीं किया है।
कंस्ट्रक्टर्स
कन्स्ट्रक्टर्स किसी ऑब्जेक्ट की निहित विधि है जिसे ऑब्जेक्ट प्रकार के समान नाम के साथ संदर्भित किया जा सकता है। जब भी वस्तु को पहली बार संदर्भित किया जाता है, तो इस निर्माता को अंतर्निहित रूप से कहा जाएगा।
हम इन कंस्ट्रक्टर का उपयोग करके ऑब्जेक्ट को इनिशियलाइज़ भी कर सकते हैं। कंस्ट्रक्टर को ऑब्जेक्ट प्रकार बॉडी में सदस्य को उसी प्रकार के नाम के साथ परिभाषित करके स्पष्ट रूप से परिभाषित किया जा सकता है।
उदाहरण 1 : निम्न उदाहरण में हम ऑब्जेक्ट प्रकार के सदस्य का उपयोग मानों ('आरआरआर', 1005, 20000, 1000) और ('पीपीपी', 1006, 20000, 1001) के साथ एम्प टेबल में रिकॉर्ड डालने के लिए करने जा रहे हैं। डेटा डालने के बाद, हम ऑब्जेक्ट प्रकार के सदस्य का उपयोग करके समान प्रदर्शित करने जा रहे हैं। हम दूसरे रिकॉर्ड के लिए 1001 मान के साथ डिफ़ॉल्ट रूप से प्रबंधक आईडी को पॉप्युलेट करने के लिए स्पष्ट कंस्ट्रक्टर का उपयोग करने जा रहे हैं।
हम इसे नीचे के चरणों में निष्पादित करने जा रहे हैं।
- चरण 1:
- ऑब्जेक्ट प्रकार बनाएँ
- वस्तु प्रकार शरीर
- Step2: एम्प्लॉइ को कॉल करने के लिए एक अनाम ब्लॉक बना रहा है, जो emp_no 1005 के लिए निहित निर्माता के माध्यम से बनाया गया है।
- चरण 3: emp_no 1006 के लिए स्पष्ट निर्माता के माध्यम से बनाई गई ऑब्जेक्ट प्रकार को कॉल करने के लिए एक अनाम ब्लॉक बनाना।
चरण 1) ऑब्जेक्ट प्रकार और ऑब्जेक्ट प्रकार बॉडी बनाएं
CREATE TYPE emp_object AS OBJECT(emp_no NUMBER,emp_name VARCHAR2(50),salary NUMBER,manager NUMBER,CONSTRUCTOR FUNCTION emp_object(p_emp_no NUMBER, p_emp_name VARCHAR2,p_salary NUMBER) RETURN SELF AS RESULT),MEMBER PROCEDURE insert_records,MEMBER PROCEDURE display_records);/
CREATE OR REPLACE TYPE BODY emp_object ASCONSTRUCTOR FUNCTION emp_object(p_emp_no NUMBER,p_emp_name VARCHAR2,p_salary NUMBER)RETURN SELF AS RESULTISBEGINDbms_output.put_line(’Constructor fired… ');SELF.emp_no:=p_emp_no;|SELF.emp_name:=p_emp_name;SELF.salary:=p_salary;SELF.managerial:=1001;RETURN;END:MEMBER PROCEDURE insert_recordsISBEGININSERT INTO emp VALUES(emp_noemp_name,salary,manager);ENDMEMBER PROCEDURE display_recordsISBEGINDbms_output.put_line('Employee Name:'||emp_name);Dbms_output.put_line('Employee Number:'||emp_no);Dbms_output.put_line('Salary':'||salary);Dbms_output.put_line('Manager:'||manager);END:END:/
कोड स्पष्टीकरण
- कोड पंक्ति 1-9 : 4 विशेषताओं और 3 सदस्यों के साथ 'एम्प_बॉजेक्ट' ऑब्जेक्ट प्रकार बनाना। इसमें केवल 3 मापदंडों वाले निर्माणकर्ताओं की परिभाषा है। (वास्तविक निहित निर्माता में ऑब्जेक्ट प्रकार में मौजूद विशेषताओं की संख्या के बराबर पैरामीटर शामिल होंगे)
- कोड लाइन 10 : टाइप बॉडी बनाना।
- कोड लाइन 11-21 : स्पष्ट कंस्ट्रक्टर को परिभाषित करना। विशेषताओं के लिए पैरामीटर मान असाइन करना और डिफ़ॉल्ट मान '1001' के साथ विशेषता 'प्रबंधक' के लिए मान निर्दिष्ट करना।
- कोड लाइन 22-26 : सदस्य 'insert_records' को परिभाषित करना जिसमें गुण मानों को 'emp' तालिका में डाला जाता है।
- कोड लाइन 27-34 : सदस्य 'display_records' को परिभाषित करना जिसमें ऑब्जेक्ट प्रकार विशेषताओं के मूल्यों को प्रदर्शित करना।
उत्पादन
प्रकार बनाया गया
टाइप बॉडी बनाई
चरण 2) emp_no 1005 के लिए निहित निर्माता के माध्यम से बनाई गई ऑब्जेक्ट प्रकार को कॉल करने के लिए अनाम ब्लॉक बनाना
DECLAREguru_emp_det emp_object;BEGINguru_emp_det:=emp_object(1005,’RRR',20000,1000);guru_emp_det.display_records;guru_emp_det.insert_records;COMMIT;END;
कोड स्पष्टीकरण
- कोड लाइन 37-45 : निहित निर्माणकर्ता का उपयोग करके रिकॉर्ड सम्मिलित करना। कंस्ट्रक्टर को कॉल में वास्तविक संख्या मान गुण होते हैं।
- कोड लाइन 38 : गुरु_मैं_डेट को 'एम्प_ोबिज' के ऑब्जेक्ट प्रकार के रूप में घोषित करता है।
- कोड लाइन 41 : कथन 'guru_emp_det.display_records' जिसे 'डिप्लोमा_सर्कॉर्ड्स' सदस्य फ़ंक्शन कहा जाता है और गुण मान प्रदर्शित किए जाते हैं
- कोड लाइन 42 : कथन 'guru_emp_det.insert_records' को 'insert_records' सदस्य फ़ंक्शन कहा जाता है और विशेषताएँ मान तालिका में सम्मिलित किए जाते हैं।
उत्पादन
कर्मचारी का नाम: RRR
कर्मचारी संख्या: 1005
वेतन: 20000 रुपये
मैनेजर: 1000
चरण 3) emp_no 1006 के लिए स्पष्ट निर्माता के माध्यम से बनाई गई ऑब्जेक्ट प्रकार को कॉल करने के लिए अनाम ब्लॉक बनाना
DECLAREguru_emp_det emp_object;BEGINguru_emp_det:=emp_object(1006,'PPP',20000);guru_emp_det.display_records;guru_emp_det.insert_records;COMMIT;END;/
उत्पादन
Employee Name:PPPEmployee Number:1006Salary:20000Manager:1001
कोड स्पष्टीकरण:
- कोड लाइन 46-53 : स्पष्ट कंस्ट्रक्टर का उपयोग करके रिकॉर्ड सम्मिलित करना।
- कोड लाइन 46 : गुरु_मप_दत्त को 'एम्प_ोबिज' के ऑब्जेक्ट प्रकार के रूप में घोषित करता है।
- कोड लाइन 50 : कथन 'guru_emp_det.display_records' जिसे 'display_records' सदस्य फ़ंक्शन कहा जाता है और गुण मान प्रदर्शित किए जाते हैं
- कोड लाइन 51 : कथन 'guru_emp_det.insert_records' को 'insert_records' सदस्य फ़ंक्शन कहा जाता है और विशेषताएँ मान तालिका में सम्मिलित किए जाते हैं।
वस्तु प्रकार में निहित
इनहेरिटेंस प्रॉपर्टी सब-ऑब्जेक्ट प्रकार को सभी विशेषता और सुपर ऑब्जेक्ट प्रकार या पैरेंट ऑब्जेक्ट प्रकार के सदस्यों तक पहुंचने की अनुमति देती है।
सब-ऑब्जेक्ट प्रकार को इनहेरिटेड ऑब्जेक्ट प्रकार कहा जाता है, और सुपर ऑब्जेक्ट प्रकार को पैरेंट ऑब्जेक्ट प्रकार कहा जाता है। नीचे दिए गए सिंटैक्स में माता-पिता और विरासत में मिली वस्तु प्रकार बनाने का तरीका दिखाया गया है।
CREATE TYPEAS OBJECT( ,… )NOT FINAL;/
सिंटैक्स स्पष्टीकरण:
- उपरोक्त वाक्य रचना सुपर प्रकार के निर्माण को दिखाती है।
CREATE TYPEUNDER ( ,.);/
सिंटैक्स स्पष्टीकरण:
- उपर्युक्त वाक्यविन्यास SUB प्रकार का निर्माण दर्शाता है। इसमें पैरेंट ऑब्जेक्ट प्रकार से सभी सदस्य और विशेषताएँ शामिल हैं।
उदाहरण 1: नीचे दिए गए उदाहरण में, हम निम्नलिखित रिकॉर्ड ('आरआरआर', 1007, 20000) के लिए प्रबंधक आईडी के साथ रिकॉर्ड को सम्मिलित करने के लिए विरासत संपत्ति का उपयोग करने जा रहे हैं।
हम निम्नलिखित चरणों में उपरोक्त कार्यक्रम को निष्पादित करने जा रहे हैं
- Step1: सुपर प्रकार बनाएँ।
- Step2: SUB टाइप और बॉडी बनाएं।
- चरण 3: SUB प्रकार को कॉल करने के लिए एक अनाम ब्लॉक बनाना।
चरण 1) सुपर प्रकार या मूल प्रकार बनाएँ।
CREATE TYPE emp_object AS OBJECT(emp_no NUMBER,emp_name VARCHAR2(50),salary NUMBER,manager NUMBER,CONSTRUCTOR FUNCTION emp_object(p_emp_no NUMBER,p_emp_name VARCHAR2(50),p_salary NUMBER)RETURN SELF AS RESULT),MEMBER PROCEDURE insert_records,MEMBER PROCEDURE display_records)NOT FINAL;/
कोड स्पष्टीकरण:
- कोड पंक्ति 1-9 : 4 विशेषताओं और 3 सदस्यों के साथ 'एम्प_बॉजेक्ट' ऑब्जेक्ट प्रकार बनाना। इसमें केवल 3 मापदंडों वाले निर्माणकर्ताओं की परिभाषा है। इसे 'NOT FINAL' घोषित किया गया है, इसलिए यह मूल प्रकार है।
चरण 2) सुपर प्रकार के तहत SUB टाइप बनाएं।
CREATE OR REPLACE TYPE sub_emp_objectUNDER emp_object(default_manager NUMBER,MEMBER PROCEDURE insert_default_mgr);/CREATE OR REPLACE TYPE BODY sub_emp_objectASMEMBER PROCEDURE insert_default_mgrISBEGININSERT INTO empVALUES(emp_no,emp_name:salary,manager):END;END;/
कोड स्पष्टीकरण:
- कोड लाइन 10-13 : अतिरिक्त एक विशेषता 'default_manager' और सदस्य प्रक्रिया घोषणा के साथ विरासत में दिए गए प्रकार के रूप में sub_emp_object बनाना।
- कोड लाइन 14 : विरासत में मिली वस्तु प्रकार के लिए बॉडी बनाना।
- कोड लाइन 1 6 -21 : सदस्य प्रक्रिया को परिभाषित करना जो प्रबंधक मूल्य को छोड़कर, 'सुपर' ऑब्जेक्ट प्रकार से मानों के साथ रिकॉर्ड को "एम्प" तालिका में सम्मिलित कर रहा है। प्रबंधक मान के लिए, यह 'SUB' प्रकार से 'default_manager' का उपयोग कर रहा है।
चरण 3) SUB प्रकार को कॉल करने के लिए अनाम ब्लॉक बनाना
DECLAREguru_emp_det sub_emp_object;BEGINguru_emp_det:= sub_emp_object(1007,'RRR',20000,1000,1002);guru_emp_det.insert_default_mgr;COMMIT;END;/
कोड स्पष्टीकरण:
- कोड लाइन 25 : _ गुरु_में_दत्त ’को emp सब_कम_बॉजेक्ट’ प्रकार घोषित करना।
- कोड लाइन 27 : अंतर्निहित निर्माता के साथ ऑब्जेक्ट को प्रारंभ करना। कंस्ट्रक्टर में 5 पैरामीटर होते हैं (PARENT से 4 विशेषताएँ और SUB प्रकार से 2 विशेषताएँ)। अंतिम पैरामीटर (1002) default_manager विशेषता के लिए मान को परिभाषित करता है
- कोड लाइन 28 : कंस्ट्रक्टर में पारित डिफॉल्ट मैनेजर आईडी के साथ रिकॉर्ड डालने के लिए सदस्य को 'insert_default_mgr' कॉल करना।
पीएल / एसक्यूएल ऑब्जेक्ट्स की समानता
वस्तु उदाहरण जो समान वस्तुओं से संबंधित है, की तुलना समानता के लिए की जा सकती है। इसके लिए, हमें ऑब्जेक्ट प्रकार में विशेष विधि की आवश्यकता होती है जिसे 'ORDER' विधि कहा जाता है।
यह 'ORDER' विधि वह फ़ंक्शन होनी चाहिए जो संख्यात्मक प्रकार लौटाती है। यह दो मापदंडों को इनपुट के रूप में लेता है, (पहला पैरामीटर: सेल्फ-ऑब्जेक्ट इंस्टेंस का आईडी, दूसरा पैरामीटर: अन्य ऑब्जेक्ट इंस्टेंस का आईडी)।
दो ऑब्जेक्ट इंस्टेंस की आईडी की तुलना की जाती है, और परिणाम संख्यात्मक में वापस किया जाता है।
- सकारात्मक मूल्य दर्शाता है कि SELF ऑब्जेक्ट का उदाहरण अन्य उदाहरण से अधिक है।
- ऋणात्मक मान दर्शाता है कि SELF ऑब्जेक्ट आवृत्ति अन्य उदाहरण से कम है।
- शून्य दर्शाता है कि SELF वस्तु उदाहरण अन्य उदाहरण के बराबर है।
- यदि कोई भी उदाहरण अशक्त है, तो यह फ़ंक्शन शून्य हो जाएगा।
CREATE TYPE BODYAS OBJECT(ORDER MEMBER FUNCTION match( object_type_name_ 1)RETURN INTEGER IS BEGINIF parameter THENRETURN -1; --any negative number will doELSIF id>c.id THENRETURN 1; -any positive number will doELSERETURN 0;END IF;END;… );/
सिंटैक्स स्पष्टीकरण:
- उपरोक्त सिंटैक्स ORDER फ़ंक्शन को दिखाता है जिसे समानता जाँच के लिए टाइप बॉडी में शामिल करने की आवश्यकता होती है।
- इस फ़ंक्शन के लिए पैरामीटर समान ऑब्जेक्ट प्रकार का एक उदाहरण होना चाहिए।
- उपरोक्त फ़ंक्शन को "obj_instance_1.match (obj_instance_2)" कहा जा सकता है और यह अभिव्यक्ति दिखाए गए अनुसार संख्यात्मक मान लौटाएगी, जहाँ obj_instance_1 और obj_instance_2 ऑब्जेक्ट_type_name का उदाहरण हैं।
उदाहरण 1 : निम्नलिखित उदाहरण में हम यह देखने जा रहे हैं कि दो वस्तुओं की तुलना कैसे करें। हम दो उदाहरण बनाने जा रहे हैं और हम उनके बीच विशेषता 'वेतन' की तुलना करने जा रहे हैं। हम int दो चरण करने जा रहे हैं।
- चरण 1: ऑब्जेक्ट प्रकार और शरीर बनाना।
- चरण 2: कॉल करने के लिए अनाम ब्लॉक का निर्माण वस्तु उदाहरण की तुलना करें।
चरण 1) वस्तु प्रकार और शरीर बनाना।
CREATE TYPE emp_object_equality AS OBJECT(salary NUMBER,ORDER MEMBER FUNCTION equals(c emp_object_equality)RETURN INTEGER);/
CREATE TYPE BODY emp_object_equality ASORDER MEMBER FUNCTION equals(c emp_object_equality)RETURN INTEGERISBEGIN IF salaryc.salaryTHEN RETURN 1;ELSERETURN 0;END IF: END;END;/
कोड स्पष्टीकरण:
- कोड पंक्ति 1-4: 1 गुण और 1 सदस्य के साथ 'emp_object_equality' ऑब्जेक्ट प्रकार बनाना।
- कोड लाइन 6-16 : ORDER फ़ंक्शन को परिभाषित करना जो SELF आवृत्ति और पैरामीटर उदाहरण प्रकार के 'वेतन' विशेषता की तुलना करता है। अगर SELF सैलरी अधिक है और 0 यदि सैलरी बराबर है, तो SELF सैलरी कम या सकारात्मक है, तो यह नकारात्मक है।
कोड आउटपुट:
प्रकार बनाया गया
चरण 2) कॉल करने के लिए अनाम ब्लॉक का निर्माण वस्तु उदाहरण की तुलना करें।
DECLAREl_obj_l emp_object_equality;l_obj_2 emp_object_equality;BEGINl_obj_l:=emp_object_equality(15000);l_obj_2:=emp_object_equality(17000);IF l_obj_1.equalS(l_obj_2)>0THENDbms_output.put_line(’Salary of first instance is greater’):ELSIF l_obj_l.equalS(l_obj_2)<0THENDbms_output.put_line(’Salary of second instance is greater’);ELSEDbms_output.put_line(’Salaries are equal’);END IF;END;/
उत्पादन
Salary of second instance is greater
कोड स्पष्टीकरण:
- कोड लाइन 20 : emp_object_equality प्रकार के l_obj_1 की घोषणा करना।
- कोड लाइन 21 : emp_object_equality प्रकार के l_obj_2 की घोषणा करना।
- कोड लाइन 23 : प्रारंभिक मान__jj_1 वेतन मान के साथ '15000' के रूप में
- कोड लाइन 24 : '17000' के रूप में वेतन मान के साथ l_obj_1 की शुरुआत
- कोड लाइन 25-33 : ORDER फ़ंक्शन से वापसी संख्या के आधार पर संदेश प्रिंट करें।
सारांश
इस अध्याय में, हमने ऑब्जेक्ट प्रकार और उनके गुणों को देखा है। हमने PL / SQL ऑब्जेक्ट्स में कंस्ट्रक्टर्स, मेंबर्स, एट्रीब्यूट्स, इनहेरिटेंस और इक्वलिटी के बारे में भी चर्चा की है।