जैसा कि आप 10g पर हैं, आप इसे डेटा पंप एपीआई के साथ कर सकते हैं। आपको एक निर्देशिका ऑब्जेक्ट पर पढ़ने और लिखने की आवश्यकता है जो गंतव्य ओएस निर्देशिका में मैप करता है।
निम्नलिखित उदाहरण में मैं DATA_PUMP_DIR द्वारा पहचानी गई निर्देशिका में EMP.DMP नामक फ़ाइल में दो तालिकाओं, EMP और DEPT का निर्यात कर रहा हूँ।
SQL> declare
2 dp_handle number;
3 begin
4 dp_handle := dbms_datapump.open(
5 operation => 'EXPORT',
6 job_mode => 'TABLE');
7
8 dbms_datapump.add_file(
9 handle => dp_handle,
10 filename => 'emp.dmp',
11 directory => 'DATA_PUMP_DIR');
12
13 dbms_datapump.add_file(
14 handle => dp_handle,
15 filename => 'emp.log',
16 directory => 'DATA_PUMP_DIR',
17 filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);
18
19 dbms_datapump.metadata_filter(
20 handle => dp_handle,
21 name => 'NAME_LIST',
22 value => '''EMP'',''DEPT''');
23
24 dbms_datapump.start_job(dp_handle);
25
26 dbms_datapump.detach(dp_handle);
27 end;
28 /
PL/SQL procedure successfully completed.
SQL>
@DerekMahar पूछते हैं:
<ब्लॉककोट>"क्या क्लाइंट की ओर से निष्पादन के लिए एक समान डेटा पंप टूल या एपीआई उपलब्ध है"
डेटापंप, पीएल/एसक्यूएल एपीआई और ओएस उपयोगिता दोनों, ओरेकल निर्देशिकाओं को लिखते हैं। Oracle निर्देशिका को एक OS निर्देशिका का प्रतिनिधित्व करना चाहिए जो डेटाबेस को दिखाई दे। आमतौर पर यह सर्वर पर एक निर्देशिका है, हालांकि मुझे लगता है कि नेटवर्क पर पीसी ड्राइव को मैप करना सैद्धांतिक रूप से संभव है। आपको अपने नेटवर्क व्यवस्थापक को समझाना होगा कि यह एक अच्छा विचार है, यह एक कठिन बिक्री है, क्योंकि ऐसा नहीं है...
पुरानी IMP और EXP उपयोगिताएँ क्लाइंट निर्देशिकाओं से पढ़ी और लिखी जाती हैं, इसलिए सैद्धांतिक रूप से एक स्थानीय डंप फ़ाइल को दूरस्थ डेटाबेस में IMP करना संभव है। लेकिन मुझे नहीं लगता कि यह एक व्यावहारिक दृष्टिकोण है। उनकी प्रकृति से डंप फ़ाइलें बड़ी होती हैं, इसलिए पूरे नेटवर्क में आयात करना धीमा होता है और विफलता की संभावना होती है। यह डंप फ़ाइल को ज़िप करने, सर्वर पर कॉपी करने और वहां से आयात करने का एक बेहतर समाधान है।