龙空技术网

oracle数据泵对数据导入导出

阿伟你挑的嘛偶像 339

前言:

当前小伙伴们对“oracle将一张表数据导入另一张表中”大体比较珍视,看官们都需要了解一些“oracle将一张表数据导入另一张表中”的相关知识。那么小编同时在网摘上搜集了一些有关“oracle将一张表数据导入另一张表中””的相关知识,希望小伙伴们能喜欢,各位老铁们一起来了解一下吧!

1、expdp 和impdp 只能在服务端使用 (区别于imp、exp客户端服务端都可以)

2、exp不能导出空表(需要手动修改空表设置) expdp 可以

3、imp只能使用exp 的文件 ,impdp只能使用expdp 的文件。

数据泵导入导出数据

目录创建

创建目录

--创建:create directory dump_dir as '/home/oracle';--或者create or replace directory dump_dir as '/home/oracle';--删除drop directory DUMP_DIR;

查看目录

col owner for a6col DIRECTORY_NAME for a20col DIRECTORY_PATH for a30--格式化 可有可无(sqlplus时候才用,否则显示非常不友好)select * from dba_directories;

授权

--授权grant read,write on directory DUMP_DIR to 用户;
expdp导出数据
1)导出用户expdp abc/abc@orcl schemas=abc dumpfile=expdp.dmp directory=dump_dir compression=all version=11.2.0.1.0;2)导出表expdp abc/abc@orcl tables=emp,dept dumpfile=expdp.dmp directory=dump_dir;3)按查询条件导expdp abc/abc@orcl directory=dump_dir dumpfile=expdp.dmp tables=emp query='where deptno=20';4)按表空间导expdp abc/abc@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=temp,example;5)导整个数据库expdp abc/abc@orcl directory=dump_dir dumpfile=full.dmp full=y;

参数说明

COMPRESSION

ALL :元数据和表数据都进行压缩,导出文件是最小的,耗时也最长。

DATA_ONLY :仅对表数据进行压缩,对于大数据量的导出效果明显,会比METADATA_ONLY方式得到更小的压缩文件。

METADATA_ONLY :仅对元数据进行压缩,而不会对表数据进行压缩,这种压缩执行后效果一般不是很明显,不过速度比较快。

NONE:不进行任何的压缩,导出后的文件也是最大的。

DEFAULT :默认方式,即不指定COMPRESSION参数,会采用默认的压缩方式METADATA_ONLY。

VERSION

查看oracle数据库版本

select * from v$version;

指定导出时数据库的版本 用于兼容,否则在导入低版本数据库时,会不让导入。

impdp导入数据

1)导入用户(从用户abc导入到用户def)impdp abc/abc@orcl directory=dump_dir dumpfile=expdp.dmp schemas=def;2)导入表(从abc用户中把表dept和emp导入到def用户中)impdp abc/abc@orcl directory=dump_dir dumpfile=expdp.dmp tables=abc.dept,abc.emp remap_schema=abc:def;3)导入表空间impdp abc/abc@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=example;4)导入数据库impdb abc/abc@orcl directory=dump_dir dumpfile=full.dmp full=y;5)追加数据impdp abc/abc@orcl directory=dump_dir dumpfile=expdp.dmp schemas=abc table_exists_action=append

REMAP_SCHEMA=abc:def

abc用户替换成def用户

table_exists_action选项:

skip:是如果已存在表,则跳过并处理下一个对象;

append:是为表增加数据;

truncate:是截断表,然后为其增加新数据;

replace:是删除已存在表,重新建表并追加数据

标签: #oracle将一张表数据导入另一张表中