परिचय
एक्सटर्नल टेबल डेटाबेस के बाहर स्टोर की गई फ्लैट फाइलों से डेटा प्राप्त करती हैं और Oracle® को उन फाइलों में डेटा क्वेरी करने की अनुमति देती हैं।
Oracle SQL*Loader द्वारा समर्थित किसी भी फाइल फॉर्मेट को पार्स कर सकता है। आप एक्सटर्नल टेबल पर डेटा मैनिपुलेशन लैंग्वेज (DML) का उपयोग नहीं कर सकते, लेकिन आप क्वेरी, जॉइन, और सॉर्ट ऑपरेशन के लिए DML का उपयोग कर सकते हैं। आप एक्सटर्नल टेबल के विरुद्ध व्यू और सिनोनिम भी बना सकते हैं।
एक्सटर्नल टेबल सुविधा का लाभ उठाने के लिए, आपको ORACLE_LOADER एक्सेस ड्राइवर का उपयोग करना चाहिए और सुनिश्चित करना चाहिए कि डेटा फाइलें टेक्स्ट फॉर्मेट में हैं। आपको स्ट्रक्चर्ड क्वेरी लैंग्वेज (SQL) भी समझना चाहिए ताकि आप एक्सटर्नल टेबल बना सकें और इसके विरुद्ध क्वेरी कर सकें।
Oracle डेटाबेस में एक्सटर्नल टेबल बनाएं
Oracle लोडर का उपयोग करके एक्सटर्नल टेबल बनाने के लिए, निम्नलिखित चरण करें:
एक डायरेक्टरी बनाएं
उपयोगकर्ता द्वारा प्रदान की गई कॉमा-सेपरेटेड वैल्यू (CSV) या टेक्स्ट फाइलों के स्थान की ओर इशारा करने वाली डायरेक्टरी बनाने के लिए निम्न कोड का उपयोग करें।
create directory vk_dir as '/opt/oracle/app/admin/je1prd/mods/151214_CHG0004529';
एक एक्सटर्नल टेबल बनाएं
एक्सटर्नल टेबल बनाने के लिए निम्न SQL का उपयोग करें:
create table kumarv5.VK_4529_ext (
IBMCU NCHAR(12),
IBLITM NCHAR(25),
IBANPL NUMBER
)
organization external (
type oracle_loader
default directory vk_dir
access parameters (
records delimited by newline
logfile vk_dir:'VK_4529_ext.log'
badfile vk_dir:'VK_4529_ext.bad'
discardfile vk_dir:'VK_4529_ext.dcf'
skip 1
fields terminated by '~'
missing field values are null
reject rows with all null fields
( IBMCU, IBLITM, IBANPL )
)
location ( 'data14.csv' )
)
reject limit unlimited;
एक लोकल टेबल बनाएं
चूंकि आप एक्सटर्नल टेबल पर DML नहीं कर सकते, इसलिए एक्सटर्नल टेबल के आधार पर एक लोकल टेबल बनाने के लिए निम्न कोड का उपयोग करें:
--create
create table kumarv5.VK_4529_int (
IBMCU NCHAR(12),
IBLITM NCHAR(25),
IBANPL NUMBER
)
tablespace proddtat;
एक्सटर्नल से लोकल टेबल में डेटा कॉपी करें
एक्सटर्नल से लोकल टेबल में डेटा कॉपी करने के लिए निम्न कोड का उपयोग करें:
--insert
Insert into kumarv5.VK_4529_int select * from kumarv5.VK_4529_ext;
commit;
select count(*) from kumarv5.VK_4529_int;
मुख्य प्रोडक्शन टेबल अपडेट करें
एक्सटर्नल टेबल के आधार पर लोकल टेबल बनाने के बाद, आप लोकल टेबल से मुख्य प्रोडक्शन टेबल को अपडेट करने के लिए निम्न कोड का उपयोग कर सकते हैं:
update PRODDTA.F43090 a
set a.PCMCU=' 1AM'
WHERE (a. IBMCU, a. IBLITM, a. IBANPL) in
(select b. IBMCU, b. IBLITM, b. IBANPL from kumarv5.VK_4529_int b );
एक्सटर्नल टेबल से रेगुलर टेबल में डेटा लोड करें
निम्न चित्र दिखाता है कि एक्सटर्नल टेबल से रेगुलर टेबल में डेटा कैसे लोड करें:
चित्र स्रोत: https://dba.fyicenter.com/faq/oracle/Load-Data-from-External-Tables.html
निष्कर्ष
एक्सटर्नल टेबल आपको बाहरी स्रोतों में डेटा को ऐसे एक्सेस करने में सक्षम बनाती हैं जैसे कि वह डेटाबेस में एक टेबल में हो। यदि उपयोगकर्ता स्प्रेडशीट या CSV फॉर्मेट में डेटा प्रदान करते हैं, और आपको एक्सेल शीट के आधार पर डेटाबेस टेबल अपडेट करने की आवश्यकता है, तो एक्सटर्नल टेबल काम आती है।