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、好多人三天两头下决心,仿佛明天就可以脱胎换骨,彻底告别自我。你知不知道屎涅磐之后还是屎 

     

posted @ 2018-01-31 14:26  流年煮雪  阅读(2727)  评论(0编辑  收藏  举报