【ASK_ORACLE】一眼判斷出Oracle的dmp檔案是用expdp匯出還是exp匯出

Attack_on_Jager發表於2022-10-28

前言

有時候DBA或者開發為了從Oracle中提數,會給你dmp檔案讓你匯入,如果在不說明的情況下,你是不是就很困惑這個dmp檔案到底是什麼方式匯出的?大部分開發們喜歡使用exp,DBA們則喜歡用expdp,而且有時候溯源也很困難,所以本文就提供一種方式來一眼就能看出dmp檔案的匯出方式,讓你不再煩惱!


一眼就能看出的方法

Oracle提供了一個獲取dmp檔案資訊的儲存過程: DBMS_DATAPUMP.GET_DUMPFILE_INFO()

該儲存過程有四種輸出,分別是數字“0-3”,現在就來說明下這四個數字的含義:

0:unknown

1:expdp

2:exp

3:ext


具體使用方式:

1. 使用sys使用者登入

$ sqlplus / as sysdba


2. 建立目錄物件 (要確保dmp檔案在自定義的目錄下)

SQL> create or replace directory dmp_dir as '/backup/dump';


3. 開啟PL/SQL的結果輸出顯示,否則sqlplus預設是不會顯示結果的

SQL> set serveroutput on


4. 執行儲存過程

declare
 v_filetype NUMBER;  -- 此處會顯示“0-3”
begin
 dbms_datapump.get_dumpfile_info(
  filename => 'tables.dmp',  -- dmp檔名
  directory => 'DMP_DIR',  -- 目錄物件名,需要大寫,或者呼叫函式upper()轉換一下
  filetype => v_filetype);
  dbms_output.put_line('Filetype : ' || v_filetype);
end;
/
Filetype : 1  --1就是對應的expdp方式
PL/SQL procedure successfully completed.



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69992972/viewspace-2920826/,如需轉載,請註明出處,否則將追究法律責任。

相關文章