前言
有时候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博客 ” ,链接:https://blog.itpub.net/69992972/viewspace-2920826/ ,如需转载,请注明出处,否则将追究法律责任。