导出时没有报错,导入也没有报错,程序运行时发现表或视图不存在。
仔细查看导出日志,发现导出日志中根本就没有导出该表,而数据库管理工具又是存在的,经过反复尝试,该表始终不在导出日志里出现。
经查询得知,网络原文地址:http://blog.sina.com.cn/s/blog_6925c03c0101d9aw.html
11G中有个新特性,当表无数据时,不分配segment,以节省空间。
解决方法:设置deferred_segment_creation 参数,具体步骤如下。
步骤一:执行命令 alter system set deferred_segment_creation=false;
步骤二:执行命令 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
步骤三:把步骤二查询的结果导出,执行导出的语句。
说明:
需注意的是deferred_segment_creation值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,就需要执行步骤二、三。