度量快速开发平台-专业、快速的软件定制快开平台

标题: oracle11g 空表不能导出问题 [打印本页]

作者: caixuqad    时间: 2020-5-8 17:07

作者: 陈晓龙    时间: 2020-7-21 16:39
标题: oracle11g 空表不能导出问题
--导入导出用户(带版本号)
使用方法:
1、在数据库服务器上建立一个文件夹,例如d:\bak\expdpdir

2、在数据库服务器上用system用户登录到数据库中,可以是pl双击查看原图l,可以是sqlplus

3、创建oracle 数据库目录指向第一步操作系统的文件夹
   create or replace directory expdpdir as 'd:\bak\expdpdir';
4、在cmd命令行执行导出
    cmd> expdp system/delit  directory=expdpdir dumpfile=delit.dmp logfile=delit_expdp.log schemas=delit version=11.1.0


5、在cmd命令行执行导入
   先要创建表空间,可以不创建用户,如果是还原其他的数据库,可以直接drop user delit cascade;后就执行导入
   cmd>impdp system/dl directory=expdpdir dumpfile=delit.dmp logfile=delit_expdp.log schemas=delit

----------------------------------------------------------------------------------------------------------------------
导出空表问题:
轻松解决oracle11g 空表不能exp导出的问题。

下面是终极方法:

先查询一下哪些表是空的:

Sql代码
select table_name from user_tables where NUM_ROWS=0;


下面我们通过select 来生成修改语句:
Sql代码
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0

然后就在结果窗口里面生成了下面那些东西:

Sql代码
alter table E2USER_STATE allocate extent;
alter table ENTERPRISE_E2USER allocate extent;
alter table ENTERPRISE_INFO_TYPE allocate extent;
alter table ENTERPRISE_MAPMARK allocate extent;
alter table ENTERPRISE_NEEDTASK allocate extent;
alter table ENTERPRISE_PICTURE allocate extent;
alter table ENTERPRISE_REPORT allocate extent;
alter table ENTERPRISE_REPORT_TYPE allocate extent;
alter table ENTERPRISE_TEAM allocate extent;
alter table FROMUSER_ADJUNCT_TARGET allocate extent;
alter table FROMUSER_OFFER allocate extent;
alter table NEEDTASK_TYPE allocate extent;
alter table SYS_PRIVILEGE allocate extent;
alter table SYS_RELEVANCE_RESOURCE allocate extent;
alter table SYS_RELEVANCE_TARGET allocate extent;
alter table SYS_RESOURCE_TYPE allocate extent;
alter table TASK_FEEDBACK allocate extent;
alter table TASK_MYTASKTYPE allocate extent;
alter table TOUSER_MESSAGE allocate extent;
alter table ABOUTUSER_POINT allocate extent;
alter table ABOUTUSER_POINT_MARK allocate extent;
alter table ABOUTUSER_QUERYKEY allocate extent;
alter table ABOUTUSER_REPORT_HISTORY allocate extent;
alter table DICT_COMMENT_TYPE allocate extent;
alter table DICT_INDUSTRY_TYPE allocate extent;
alter table DICT_POST allocate extent;
alter table DICT_REGION allocate extent;
alter table ENTERPRISE_COMMENT allocate extent;
alter table ENTERPRISE_COMMENT_C allocate extent;
alter table ENTERPRISE_INFO allocate extent;
alter table ENTERPRISE_INFO_C allocate extent;
alter table ENTERPRISE_INFO_STATE allocate extent;
alter table CALENDAR_CREATETYPE allocate extent;
alter table CALENDAR_MY allocate extent;
alter table CALENDAR_TYPE allocate extent;



ok 执行上面那些sql,之后再exp吧,那就是见证奇迹的深刻。




作者: 张兴康    时间: 2020-7-21 16:47
试了下,快速解决了问题
作者: 陈晓龙    时间: 2020-7-21 17:31
张兴康 发表于 2015-9-21 16:47
试了下,快速解决了问题

那就好,朕很欣慰!
作者: 陈晓龙    时间: 2020-7-21 17:31
张兴康 发表于 2015-9-21 16:47
试了下,快速解决了问题

那就好,朕很欣慰!
作者: 万望    时间: 2020-7-22 16:42
前面那个环境坑死我了,一直登录成功打不开主页,原来是有空表没导进来。噗。。。
作者: 万望    时间: 2020-7-22 16:51
LZ,我要补充补充哈,不能导出空表的原因:oracle11g的新特性,数据条数是0时不分配segment,所以使用exp导出Oracle11g数据库时,空表没有导出来。
作者: 张军勇    时间: 2020-7-22 17:49
万望搞会了没有?
作者: 王爱东    时间: 2020-7-22 22:53
oracle11.2.0用expdp数据泵导出带version=11.1.0.7,然后在11.1.0.7中impdp会有致命错误。在其他version中就正常。目前看来oracle11.2.0存在较多的易用性问题了,特别是新手不容易掌握。建议不使用oracle11.2.0.可以是用oracle11.2.1及之后的版本。或者是oracle11.1.0.7,老一点的oracle10也可以不过可能性能稍微低些。
作者: 陈晓龙    时间: 2020-7-22 22:57
王爱东 发表于 2015-9-22 22:53
oracle11.2.0用expdp数据泵导出带version=11.1.0.7,然后在11.1.0.7中impdp会有致命错误。在其他version中 ...

有用,俺以后得注意了。




欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://p.delit.cn/) Powered by Discuz! X3.2