Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle में डेटाबेस ऑब्जेक्ट के रूप में नेस्टेड टेबल कैसे बनाएं?

यदि आप नेस्टेड तालिका का पुन:उपयोग करने की योजना बना रहे हैं जिसे आप बनाना चाहते हैं तो डेटाबेस ऑब्जेक्ट के रूप में ऐसा करना आपके लिए सबसे अच्छा विकल्प है। आप उन्हें अपने डेटाबेस में स्थायी रूप से स्टोर कर सकते हैं और जब चाहें उनका उपयोग कर सकते हैं।

पीएल/एसक्यूएल ब्लॉक के अंदर नेस्टेड टेबल प्रकार पीएल/एसक्यूएल संग्रह बनाने के अलावा आप उन्हें डेटाबेस ऑब्जेक्ट के रूप में भी बना सकते हैं और स्थायी रूप से स्टोर कर सकते हैं। साथ ही आप जब चाहें इनका पुन:उपयोग कर सकते हैं। डेटाबेस ऑब्जेक्ट के रूप में बनाई गई नेस्टेड तालिका या तो आदिम डेटाटाइप या उपयोगकर्ता-परिभाषित डेटाटाइप पर आधारित हो सकती है। इस ट्यूटोरियल में हम पहले वाले पर ध्यान देंगे और बाद वाले को अगले ट्यूटोरियल के लिए छोड़ देंगे।

आदिम डेटाटाइप के आधार पर नेस्टेड तालिका प्रकार संग्रह कैसे बनाएं

आदिम डेटाटाइप से हमारा मतलब उन डेटाटाइप्स से है जो भाषा द्वारा पूर्वनिर्धारित होते हैं और एक आरक्षित कीवर्ड द्वारा नामित होते हैं। PL/SQL डेटाटाइप के बारे में अधिक पढ़ने के लिए आप इस Oracle दस्तावेज़ का संदर्भ ले सकते हैं।

निम्न तालिकाओं में कोई बाधा, अनुक्रमणिका या कुछ भी डिज़ाइन नहीं किया गया है और पूरी तरह से यह प्रदर्शित करने के लिए बनाया गया है कि कैसे नेस्टेड तालिका को डेटाबेस ऑब्जेक्ट के रूप में बनाया जाए।

चरण 1:सर्वर आउटपुट को चालू करें

SET SERVEROUTPUT ON;

चरण 2:नेस्टेड तालिका प्रकार संग्रह बनाएं

CREATE OR REPLACE TYPE my_nested_table IS TABLE OF VARCHAR2 (10);
/

सफल निष्पादन पर उपरोक्त कथन 'my_nested_table' नाम से एक नेस्टेड तालिका बनाएगा जो कि आदिम डेटाटाइप VARCHAR2 पर आधारित होगी।

चरण 3:नेस्टेड तालिका का उपयोग कैसे करें?

संग्रह प्रकार जिसे हमने ऊपर बनाया है, का उपयोग किसी तालिका के कॉलम के प्रकार को निर्दिष्ट करने के लिए किया जा सकता है।

CREATE TABLE my_subject(
	  sub_id    	NUMBER,
	  sub_name  	VARCHAR2 (20),
	  sub_schedule_day    my_nested_table
) NESTED TABLE sub_schedule_day STORE AS nested_tab_space;
/

उपरोक्त तालिका एक सामान्य तालिका है सिवाय इसके कि इसका 3 कॉलम नेस्टेड टेबल प्रकार का है जिसमें कई मान हो सकते हैं। टेबल के कॉलम को नेस्टेड टेबल टाइप के रूप में परिभाषित करने के लिए आपको कंपाइलर को कॉलम और स्टोरेज टेबल का नाम बताना होगा। आप नेस्टेड एबल और स्टोर एएस क्लॉज का उपयोग करके ऐसा कर सकते हैं, जैसा कि हमने यहां लाइन नंबर 5 में किया था। क्लॉज नेस्टेड टेबल का उपयोग करके हम कॉलम का नाम निर्दिष्ट करते हैं और स्टोर एएस क्लॉज का उपयोग करके हम नेस्टेड टेबल के लिए स्टोरेज टेबल निर्दिष्ट करते हैं। पी>

आप वीडियो ट्यूटोरियल का उल्लेख कर सकते हैं जहां मैंने उपरोक्त तालिका निर्माण प्रक्रिया को चरणबद्ध तरीके से समझाया है।

तालिका में पंक्तियाँ सम्मिलित करें

INSERT INTO my_subject (sub_id, sub_name, sub_schedule_day)
VALUES (101, 'Maths', my_nested_table('mon', 'Fri'));

आप नेस्टेड तालिका में पंक्तियों को उसी तरह सम्मिलित करते हैं जैसे आप सामान्य तालिका में सम्मिलित करते हैं। हालांकि नेस्टेड टेबल प्रकार के कॉलम में डेटा डालने के लिए आपको पहले नेस्टेड टेबल का नाम लिखना होगा जो हमारे मामले में 'my_nested_table' है (चरण 2 देखें) और फिर अपनी नेस्टेड टेबल के डेटाटाइप के अनुसार डेटा लिखें और इसे कोष्ठक के अंदर संलग्न करें।

तालिका से डेटा पुनर्प्राप्त करें

तालिका से डेटा पुनर्प्राप्त करने के लिए एक साधारण चयन डीएमएल कथन का उपयोग किया जा सकता है।

SELECT * FROM my_subject;

यह सरल डीएमएल स्टेटमेंट आपको हमारे द्वारा ऊपर बनाई गई तालिका में संग्रहीत सभी डेटा दिखाएगा। किसी विशिष्ट पंक्ति से डेटा देखने के लिए आप SELECT DML के साथ WHERE क्लॉज का उपयोग कर सकते हैं

SELECT * FROM my_subject WHERE sub_id = 101;

यदि आप चाहते हैं तो आप उप-क्वेरी की सहायता ले सकते हैं केवल उस कॉलम से डेटा की जांच करने के लिए जिसे आपने नेस्टेड तालिका प्रकार के रूप में परिभाषित किया है।

SELECT * FROM TABLE (
  SELECT sub_schedule_day FROM my_subject WHERE sub_id = 101
);

उपरोक्त क्वेरी आपको सब्जेक्ट का डेटा दिखाएगी जिसमें सब्जेक्ट-आईडी 101 केवल सब_शेड्यूल_डे कॉलम से है। इस क्वेरी में हमने इंस्टेंस को खोलने और डेटा को रिलेशनल फॉर्मेट में प्रदर्शित करने के लिए टेबल एक्सप्रेशन का इस्तेमाल किया।

तालिका का डेटा अपडेट करें

आप या तो उस कॉलम के सभी मानों को अपडेट कर सकते हैं जिसे आप नेस्टेड टेबल के रूप में परिभाषित करते हैं या आप उसी के एक इंस्टेंस को अपडेट कर सकते हैं।

नेस्टेड तालिका प्रकार कॉलम के सभी मान अपडेट करें।

UPDATE my_subject SET sub_schedule_day = my_nested_table('Tue', 'Sat') 
WHERE sub_id = 101;
/

उपरोक्त क्वेरी सब_शेड्यूल_डे के सभी मानों को 'सोम', 'शुक्र' से 'मंगल' और 'शनि' तक अपडेट कर देगी। अब मान लीजिए कि आप 'शनि' को 'गुरु' से बदलकर इस कॉलम के केवल एक उदाहरण को अपडेट करना चाहते हैं। आप यह कैसे करेंगे?

नेस्टेड टेबल का सिंगल इंस्टेंस अपडेट करें

नेस्टेड टेबल टाइप कॉलम के सिंगल इंस्टेंस को अपडेट करने के लिए आप एक बार फिर टेबल एक्सप्रेशन की मदद ले सकते हैं।

UPDATE TABLE
  (SELECT sub_schedule_day FROM my_subject 
  WHERE sub_id = 101) A
SET A.COLUMN_VALUE   = 'Thur' 
WHERE A.COLUMN_VALUE = 'Sat';

उपरोक्त क्वेरी तालिका में 'शनि' से 'गुरु' तक मान अपडेट करेगी।

आशा है आपको पढ़कर अच्छा लगा होगा और कुछ नया सीखा होगा। हमारे चैनल को सब्सक्राइब करना न भूलें क्योंकि इस तरह के कई दिलचस्प ट्यूटोरियल आने वाले हैं। धन्यवाद और आपका दिन शुभ हो!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle प्रपत्रों में कस्टम लॉगिन स्क्रीन बनाना 10g

  2. Oracle सत्र का वेटइवेंट इतिहास कैसे खोजें

  3. मान्य नहीं कर सकता, नोवालिडेट विकल्प के साथ

  4. NUMTOYMINTERVAL () Oracle में फ़ंक्शन

  5. फोर्स ओरेकल ड्रॉप ग्लोबल टेम्प टेबल