oracle 导出问题

来源:互联网 发布:去哪能投诉淘宝网 编辑:程序博客网 时间:2024/05/19 02:03
从一个用户导入到另一个用户
imp sss/sss file = E:\chenzhou1107.dmp fromuser = CHENZHOU touser = sss  log=E:\12.log
导出
exp sss/sss owner=sss  file = D:\chenzhou1.dmp log=chenzhou1.log
oracle 导出问题


在11g版本中为了节省空间,oracle中的表如果没有插入过数据,就不会被分配到segment,在导出时,这些没有被分配到segment的表就不会被导出。
查看这些表的方法:pl/sql 报告->project->tables->回车 num_rows =0的那些表


解决方法:方法1.插入一行,再删除掉
          方法2,设置deferred_segment_creation 参数  默认是true,改成false后无论是空表还是非空表,都会分配到segment
                修改的语句是alter system set deferred_segment_creation=false scope=both; 
需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。
如需导出之前的空表,只能用第一种方法。
把查询结果导出,执行导出的语句,强行修改segment值,然后再导出即可导出空表,
 方法3,select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
                把查询结果导出,执行导出的语句,强行修改segment值,然后再导出即可导出空表
原创粉丝点击