बाहरी तालिका oracle में एक महत्वपूर्ण विशेषता है, हम इस पोस्ट में उदाहरण के साथ oracle में बाहरी तालिका की खोज करेंगे
Oracle में बाहरी टेबल क्या हैं?
1)बाहरी टेबल केवल पढ़ने योग्य टेबल हैं जहां डेटा डेटाबेस के बाहर फ्लैट फाइलों में संग्रहीत किया जाता है
2) आप बाहरी फाइलों तक पहुंचने के लिए बाहरी टेबल फीचर का उपयोग कर सकते हैं जैसे कि वे डेटाबेस के अंदर टेबल हैं।
3) जब आप एक बाहरी तालिका बनाते हैं, तो आप इसकी संरचना और स्थान को oracle के साथ परिभाषित करते हैं। मूल रूप से आप केवल मेटाडेटा को ऑरैकल के अंदर संग्रहीत करते हैं
4) जब आप तालिका को क्वेरी करते हैं, तो ओरेकल बाहरी तालिका को पढ़ता है और परिणाम वैसे ही लौटाता है जैसे डेटा डेटाबेस में संग्रहीत किया गया था।
5) ऑरैकल सर्वर फ्लैट फाइलों को पढ़ने के लिए दो प्रमुख ओरेकल ड्राइवर प्रदान करता है
- Oracle_loader:इसका उपयोग oracle लोडर तकनीक का उपयोग करके फ़्लैट फ़ाइलों को पढ़ने के लिए किया जाता है। यह मूल रूप से उन फ़ाइलों को पढ़ने की अनुमति देता है जिन्हें SQL लोडर तकनीक का उपयोग करके व्याख्या किया जा सकता है
- Oracle_datapump:इसका उपयोग प्लेटफ़ॉर्म स्वतंत्र प्रारूप का उपयोग करके डेटा के आयात और निर्यात दोनों के लिए किया जाता है
बाहरी तालिका डेटा एक्सेस करना
बाहरी तालिका तक पहुँचने के लिए कुछ चरणों को पूरा करने की आवश्यकता है
- बाहरी फ़ाइल स्थान की ओर इशारा करते हुए निर्देशिका ऑब्जेक्ट को परिभाषित करने के लिए हमें सबसे पहले क्रिएट डायरेक्टरी कमांड का उपयोग करना चाहिए
sqlplus "/ as sysdba"निर्देशिका ext_dir को '/export/home/ora/external' के रूप में बनाएं;
- जो उपयोगकर्ता बाहरी फ़ाइलों तक पहुंचेंगे, उन्हें निर्देशिका पर पढ़ने और लिखने का विशेषाधिकार होना चाहिए।
उपयोगकर्ता को निर्देशिका ext_dir पर सभी प्रदान करें;
- आइए अब कुछ फाइलें बनाएं या निर्देशिका के अंतर्गत रखें
एसक्यूएल> कॉन यूजर/यूजरएसक्यूएल> स्पूल सिटी।एलएसटीएसक्यूएल> सिटी चुनें || ',' || राज्य || ',' || देशों से देश;एसक्यूएल> स्पूल ऑफ
अब आप डायरेक्टरी में City.lst फाइल देख पाएंगे
- अब हमें नीचे दिए गए आदेश का उपयोग करके बाहरी तालिका बनानी चाहिए
तालिका बनाएं city_ext(city varchar(10),state varchar(14),देश varchar(13))संगठन बाहरी ( oracle_loaderDefault निर्देशिका ext_dirAccess पैरामीटर टाइप करें (रिकॉर्ड्स को "," द्वारा समाप्त किए गए newlineFields द्वारा सीमांकित किया गया है (शहर चार (10), राज्य चार(14),देश चार(13)))स्थान ('city.lst')) समानांतर 5अस्वीकार सीमा असीमित;
प्रत्येक पद की व्याख्या
संगठन बाहरी | यह बताता है कि डेटा डेटाबेस के बाहर संग्रहीत है |
प्रकार | यह ओरेकल ड्राइवर या एपीआई है जो डेटाबेस के लिए बाहरी डेटा की व्याख्या करता है। यदि आप कुछ भी निर्दिष्ट नहीं करते हैं तो oracle_loader डिफ़ॉल्ट है |
डिफ़ॉल्ट निर्देशिका | यह वह निर्देशिका स्थान है जहां फ्लैट फ़ाइलें संग्रहीत की जा सकती हैं। डिफ़ॉल्ट निर्देशिका का उपयोग oracle ड्राइवर की पहुंच से बनाई गई सहायक फ़ाइलों जैसे लॉग फ़ाइल और खराब फ़ाइलों को संग्रहीत करने के लिए भी किया जाता है। हम एकाधिक ड्राइव पर लोड संतुलन की सुविधा के लिए एकाधिक निर्देशिका निर्दिष्ट कर सकते हैं |
पहुंच पैरामीटर | यह आपको इस बाहरी तालिका के लिए विशिष्ट एक्सेस ड्राइवर के पैरामीटर के मान निर्दिष्ट करने देता है |
स्थान | यह आपको बाहरी फ्लैट फ़ाइल नाम निर्दिष्ट करने देता है |
सीमा अस्वीकार करें | यह आपको निर्दिष्ट करने देता है कि ऑरैकल सर्वर के संचालन को निरस्त करने और त्रुटि वापस करने से पहले कितनी रूपांतरण त्रुटियां हो सकती हैं |
5) बाहरी तालिका से डेटा का चयन
SQL> City_ext से * चुनें;
इसे City.lst से पढ़ा जाएगा जो एक ऑपरेटिंग सिस्टम स्तर की फाइल है।
अगर फ़ाइल City.lst मौजूद नहीं है, तो चयन कथन इस त्रुटि को उत्पन्न करेगा
चुनें **पंक्ति 1:ORA-29913 पर त्रुटि:ODCIEXTTABLEOPEN कॉलआउटORA-29400:डेटा कार्ट्रिज त्रुटिKUP-04040:फ़ाइल City.lst EXT_DIR में नहीं मिलाORA-06512:"SYS.ORACLE_LOADER" पर, पंक्ति 14ORA- 06512:पंक्ति 1 पर
बाहरी टेबल पर सीमाएं
- आप इन्सर्ट, अपडेट और डिलीट ऑपरेशन नहीं कर सकते
- Oracle अनुक्रमण संभव नहीं है
- बाधाएं संभव नहीं हैं
ओरेकल में बाहरी तालिकाओं के लाभ
- a) प्रत्येक एक्सेस के लिए एक पूर्ण तालिका स्कैन आईडी की आवश्यकता होने पर भी बाहरी तालिकाओं की क्वेरी बहुत जल्दी पूरी हो जाती हैं
- b) आप बाहरी तालिकाओं को एक दूसरे से या मानक oracle तालिकाओं से जोड़ सकते हैं
- c) हम बाहरी टेबल पर व्यू बना सकते हैं
बाहरी तालिका के लिए 11gR2 में नया अपडेट
Oracle 11g रिलीज़ 2 के साथ, नया PREPROCESSOR क्लॉज़ पेश किया गया है जो बाहरी तालिका द्वारा पढ़ने से पहले फ़ाइलों को संसाधित करने के लिए उपयोग की जाने वाली निर्देशिका ऑब्जेक्ट और स्क्रिप्ट की पहचान कर सकता है। इस सुविधा को 11gR1 (11.1.0.7) पर बैकपोर्ट किया गया था।
प्रीप्रोसेसर क्लॉज संपीड़ित फ़ाइलों को पढ़ने के लिए विशेष रूप से उपयोगी है, क्योंकि वे अनज़िप होते हैं और फ़ाइल सिस्टम पर कभी भी अनज़िप किए बिना बाहरी तालिका प्रक्रिया में सीधे पाइप किए जाते हैं।
आइए इस पैरामीटर को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं।
मान लीजिए कि शहर की सूची संकुचित है, तो फ़ाइल का नाम शहर होगा।सूची।Z
तालिका बनाएं city_ext(शहर varchar(10),राज्य varchar(14),देश varchar(13))संगठन बाहरी ( oracle_loaderDefault निर्देशिका ext_dirPREPROCESSOR ext_dir टाइप करें:uncompressAccess पैरामीटर (रिकॉर्ड्स को "," द्वारा समाप्त किए गए newlineFields द्वारा सीमांकित किया गया है। 10),राज्य चार(14),देश चार(13)))स्थान ('city.lst.Z')) समानांतर 5अस्वीकार सीमा असीमित;
यहां PREPROCESSOR क्लॉज डेटा की तलाश करने से पहले uncompress कमांड का उपयोग करके पहले City.lst.Z फ़ाइल को असंपीड़ित करेगा। सब कुछ तुरंत हो जाएगा और आपको शहर की फ़ाइल को असम्पीडित करने की आवश्यकता नहीं होगी
Oracle बाहरी तालिकाओं का उपयोग करके डेटा को उतारना/लोड करना
Oracle ने बाह्य तालिका में डेटापंप प्रौद्योगिकी के लिए भी समर्थन प्रदान किया।
हम oracle_datadump एक्सेस ड्राइवर का उपयोग करके तालिका को अनलोड कर सकते हैं
टेबल देशों को बनाएं_xtORGANIZATION EXTERNAL(TYPE ORACLE_DATAPUMPDEFAULT DIRECTORY ext_dirLOCATION ('countries.dmp')) जैसे चुनें * देशों से;
यह निर्देशिका में country.dmp बनाएगा। अब यहां तक कि तालिका वाले देशों को भी हटा दिया गया है, फिर भी हम देशों_एक्सटी तालिका का उपयोग करके डेटा देख सकते हैं।
हम डंप फ़ाइल को दूसरे डेटाबेस में भी ले जा सकते हैं और फिर डेटा देखने के लिए बाहरी टेबल बना सकते हैं
टेबल देश बनाएं_xt (शहर VARCHAR2(10), राज्य VARCHAR2(9), देश VARCHAR2(9)) संगठन बाहरी (प्रकार ORACLE_DATAPUMPDEFAULT निर्देशिका ext_dirLOCATION ('देशों से चुनें।)12c डेटाबेस में बाहरी तालिकाओं में एन्हांसमेंट
Oracle_loader
स्थान खंड में जंगली वर्ण हो सकते हैं। * एकाधिक वर्ण के लिए खड़ा है और? एकल वर्ण के लिए।
फ़ील्ड्स csv क्लॉज़ पेश किया गया है
Oracle_datapump
हम उन्नत संपीड़न विकल्प का उपयोग करके डेटा को अनलोड कर सकते हैं
संबंधित लेख
बाहरी टेबल के साथ ORA-29913
बाहरी टेबल पर टिप्स
बाहरी टेबल के साथ CLOB फ़ील्ड कैसे लोड करें
ऑरैकल टेबल को चुने के रूप में बनाएं