oracle空表导出问题的处理

最近在oracle导入和导出的时候发现一些问题,空表没有导出。 那么就需要对oracle的导出进行一些处理。 先做全局设置,先登录oracle。 show parameter defer; 查看是否 deferred_segment_creation 的值为true。 这个时候是不导出空表的。 alter system set deferred_segment_creation= false scope=spfile; 修改这个值为false,以后新建的空表就可以导出了。 对于原有的空表。首先查询 select 'alter table XXXXXX.'||table_name||' allocate extent;' from dba_tables where num_rows=0 where owner='XXXXXX' ; XXXX代表用户名。 然后将查询到的语句拷贝出来,执行。将空表分配空间。 再导出,就会发现空表也导出来了。

上面有可能检查不全,可以用下面的语句再查询一次

检查user_tables表发现没有导出的表的segment_created属性是NO

解决办法:

1、可通过下面语句生成SQL执行:

select 'alter table '|| table_name ||' move;'
 from user_tables where segment_created='NO';

或是
select 'alter table '|| table_name ||' allocate extent;'
 from user_tables where segment_created='NO';

 

impdb导出导入

expdp SRM_DEMO/password schemas=SRM_DEMO directory=data_pump_dir dumpfile =SRM_DEMO.dmp logfile=expdp_SRM_DEMO.log;

 

 impdp SRM_DEMO3/SRM_DEMO3 directory=data_pump_dir dumpfile=srmdemo615.dmp  REMAP_SCHEMA=SRM_DEMO:SRM_DEMO3 REMAP_TABLESPACE=SRM_DEMO:SRM_DEMO3 table_exists_action=replace;

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值