--零、导出前准备
--☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
导出时空表解决方法(0行就是导出提示字段不能导出):
用以下这句查找空表
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
把查询结果导出,在命令行里执行导出的语句。
这样导出后,导出时就显示0行了,不会报错。
--一、导出
--☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ --带所有常用条件的导出语句demo
--如果密码包含@就需要转义,转义要使用 \" \" 包含起来。
--导出用户,如果直接带监听导出失败,可以尝试以下方式。10.164.192.46:1521/jhptdb
--rows=n 此条件代表不要数据,只导出表结构。
--多个文件通过 , 分割 并增加 filesize=300M 条件标识每个文件大小。
--tables=(ac20a2,ac02) 此条件可指定导出哪些表。
--query='where aac003=''王五''' 此条件代表导出符合条件数据。
--compress=y 此条件代表对dmp文件进行压缩。
exp gycms/\"p@$$1705pc\"@10.164.192.46:1521/jhptdb file=F:/1.dmp,F:/2.dmp owner=gycms filesize=300M rows=n tables=(ae09,ae01) query='where aac003=''王五''' compress=y
--二、导入
--☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ --带所有常用条件的导入语句demo
--如果密码包含@就需要转义,转义要使用 \" \" 包含起来。
--导出用户,如果直接带监听导出失败,可以尝试以下方式。10.164.192.46:1521/jhptdb
--rows=n 此条件代表不要数据,只导入表结构。
--多个文件通过 , 分割
--log=F:\20180927.log 此条件必须,指定log文件位置。
--tables=(ae09,ae01) 此条件可指定导入哪些表。
--fromuser=gyssqzj touser=gyssqzj 此条件必须,指定导出用户和导入用户。
--ignore=y 此条件必须,表示忽略无关错误。
--impdp参数:table_exists_action=truncate这个是清空数据但不删除表,库表结构可以保留
--impdp参数:table_exists_action=replace这个是如果表存在直接删除表再新建再导数据,这样undo数据会少很多,但是库表结构没法保留
--导入时如果是从高版本导出,待导入是低版本,则提示"IMP-00100",则使用"AlxcTools.exe"工具修改dmp版本为待导入版本。
imp gycms/\"p@$$1705pc\"@10.164.192.46:1521/jhptdb file=F:\1.dmp,F:\2.dmp log=F:\20180927.log tables=(ae09,ae01) rows=n fromuser=gycms touser=gycms ignore=y