必喜立即反應在Oracle 10g的錶轉儲,以使用PL/SQL程序
我想借此從架構的一些選定表的轉儲,任何機構可以告訴我這可能嗎? 任何人都可以通過執行我們可以轉儲的程序來提供程序。
例如我有模式,testuser和表(T1,T2,T3,T5,T9),我只想轉儲T1 & T5。
在此先感謝
必喜立即反應在Oracle 10g的錶轉儲,以使用PL/SQL程序
我想借此從架構的一些選定表的轉儲,任何機構可以告訴我這可能嗎? 任何人都可以通過執行我們可以轉儲的程序來提供程序。
例如我有模式,testuser和表(T1,T2,T3,T5,T9),我只想轉儲T1 & T5。
在此先感謝
您應該嘗試使用DATAPUMP API(EXPDP/IMPDP)。它具有更多的功能,並具有PLP/SQL API。 DATAPUMP是exp和imp的替代品,並且在10g中受支持。
使用這個命令,你會得到一個二進制的Oracle轉儲: EXP斯科特/老虎文件= mydump.dmp表=(T1,T5)
我想這個使用PL/SQL程序 – 2009-12-11 10:48:24
如果您必須使用PL/SQL,並且您正在嘗試創建一個文件,那麼您需要爲您的用戶定義一個具有寫訪問權限的目錄。這是你的DBA可以做的事情。請參閱「創建目錄」命令。 (1)調用UTL_FILE打開文件並向其中寫入行或(2)創建一個「EXTERNAL TABLE」並將信息複製到它或(3)使用DBMS_XMLGEN或(4)使用DBMS_XMLGEN或(3)使用DBMS_XMLGEN或(3)使用DBMS_XMLGEN或使用其他幾種方法中的任何一種將數據庫中的數據實際寫入文件。所有這些都在Oracle文檔中。手冊PL/SQL Packages and Types是您這樣的朋友的朋友。
請注意,實際的文件系統目錄必須位於數據庫所在的服務器上。所以你可能需要訪問那個服務器來複制你的文件,或者讓別人設置一個mount或者其他的東西。
或者,您可以設置一個可以調用以獲取數據的plsql Web服務。
但是,個人而言,我只是使用exp。或者,如果沒有,Toad或其他一些前端工具(甚至是SQL * Plus),只需編寫一個簡單的SQL腳本並保存結果即可。
如果你正在做家庭作業,我猜他們會想要一個UTL_FILE解決方案。
當你是10克,您可以用the Data Pump API做到這一點。您需要對映射到目標OS目錄的目錄對象具有讀取和寫入權限。
在以下示例中,我將兩個表EMP和DEPT導出到DATA_PUMP_DIR標識的目錄中名爲EMP.DMP的文件中。
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問:
「是否有從 客戶端執行類似的數據抽取工具或 API可用」
數據泵,無論是PL/SQL API和OS實用程序,寫入Oracle目錄。 Oracle目錄必須表示對數據庫可見的OS目錄。通常這是服務器上的一個目錄,但我認爲理論上可以將PC驅動器映射到網絡。你必須說服你的網絡管理員,這是一個好主意,這是一個艱難的銷售,因爲它不是...
年長的進出口和實用程序讀取並從客戶端目錄寫的,所以它是理論上可以將本地轉儲文件導入遠程數據庫。但我不認爲這是一個實際的方法。根據它們的性質,轉儲文件往往很大,所以通過網絡導入很慢並且容易失敗。壓縮轉儲文件是一個更好的解決方案,將它複製到服務器並從那裏導入。
有沒有類似的數據泵工具或API可以從客戶端執行? – 2010-09-22 18:12:56
因此不來的「立即響應」的地方。這不能取代支持合同。 – APC 2009-12-11 16:56:01