oracle 11g空表不能exp导出问题解决方案
oracle 11g空表不能exp导出问题解决方案
最近由于要进行迁移服务器代码和数据库,突然发现导出的表少了,通过排查发现空表尽然没有exp导出,真是郁闷啊,虽然是空表没数据,但也不能没有啊,如何是好???
拜读各位前辈大神们的博客后发现原来可以这样操作,,,哈哈,完美解决!!!
原因是11G中有个新特性,当表无数据时,不分配segment,以节省空间,只需要在空表中添加一条数据在删除,就会产生segment。导出时则可导出空表。
No1、查询所有表中那些是空表。
select table_name from user_tables where NUM_ROWS=0;
No2、拼接字符串生成SQL执行语句。
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 ;
-----------------------------------------------------------------------------------------------
alter table TASK_USER allocate extent;
alter table TASK_REMIND_INFO allocate extent;
alter table TASK_EXECUTE_INFO allocate extent;
alter table TASK_DYNAMIC allocate extent;
alter table TASK_ALERT allocate extent;
alter table WORKORDER allocate extent;
No3、然后去运行这些SQL执行语句。
小技巧:PL/SQL中只需在这一列SQL的列名上单击即可全选这些SQL,只需打开新的窗口ctrl+v去执行就可以了。
No4、导出数据库。。。
友情连接:oracle如何导出和导入数据库表
开心一乐:
1、我一直坚信,社会真正需要的,不是那些虚伪做作的娱乐明星,不是那些尔虞我诈的政客,不是那些昧着良心挣钱的企业家。而这个社会最不需要的,就是我这种没本事还天天扯淡抱怨的傻逼。
2、你我都渴望成功,哪怕要付出很多。但我们连早点儿起床都做不到。
3、好多人三天两头下决心,仿佛明天就可以脱胎换骨,彻底告别自我。你知不知道屎涅磐之后还是屎