解决11g不能导出空表的问题-手动给空表分配空

  2019-04-08 09:38

/***
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name;
--登录用户所有对象的segment的大小。(orcl11g对应对象没有segment大小 将不会被exp 导出)

一、在安装oracle11g时注意,不要安装oracle11.2.0.1这个版本了,这个版本在备份时有BUG,不能备份空表格。oracle11.2.0.4这个版本下载地址链接:https://pan.baidu.com/s/16v0Mxt8ydvhu0Cd6mz35BA
提取码:cjp6

二、已经装了11.2.0.1版本的空表不能导出请执行
Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or SEGMENT_CREATED='NO';
将生成sql再执行一遍就可以导出了。

***/
DECLARE
CURSOR EMPTY_TABLES IS
SELECT TABLE_NAME FROM USER_TABLES WHERE NUM_ROWS = 0;
BEGIN
FOR TAB IN EMPTY_TABLES LOOP
EXECUTE IMMEDIATE 'alter table ' || TAB.TABLE_NAME || ' allocate extent';
END LOOP;
END;
/

  • 你好,游客!(点击更改信息)

    您的电子邮件不会被公布,带*为必填。


  • *

    code

    Protected with IP Blacklist CloudIP Blacklist Cloud
      正在提交中,请稍候...
      评论提交成功
    回复 的评论,点击取消回复。