【ASK_ORACLE】一眼判断出Oracle的dmp文件是用expdp导出还是exp导出

来源:这里教程网 时间:2026-03-03 18:04:06 作者:

前言有时候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.

相关推荐