Oracle 导出表,提示表不存在。

oracle 通过exp导出表时,出现 EXP-00011 TABLE_NAME does not exist 。

162815_AMKN_2460074.png

查询资料是说 oracle 11g 在用exp命令备份数据时,如果表中没有数据会出现次情况。

原因:oracle 11g 默认创建一个表时,不分配 segment 只有插入了数据时才会产生,以便节省空间。

执行下面语句,查询 segment 状态:select name, type, value,description, update_comment

from v$parameter where name = 'deferred_segment_creation' ;

164015_yfUg_2460074.png

为了以后创建表能直接分配segment,用系统账号登陆数据库,修改 deferred_segment_creation = false

alter system set deferred_segment_creation = false

164201_r0dY_2460074.png

上面的方法解决了修改后,创建新表时默认分配segment,但是已经存在的还是没有。

 

解决办法:

1、通过插入数据

2、强制分配(alter table table_name allocate extent ;

查询并生成修改语句,导出查询语句,删除多余的语句,然后执行即可。

select 'alter table ' || table_name || ' allocate extent ; ' from user_tables order by table_name ;

164557_DH5v_2460074.png

导出查询结果文件

170808_Avtk_2460074.png

删除多余信息,保留修改语句,通过工具全部替换。

171149_2fjU_2460074.png

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/fengzhi714/blog/895032

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值