oracle 11 g挺蛋疼的,用exp导dmp文件的时候,不能把空表导出来,在网上查了些解决方案,感觉都不大靠谱,只好丑中选优,选了下面这种方案。
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
执行上面那条语句,会得到一些alter语句,看语句的意思,应该是给这些空表分配空间。把这些语句导出来执行,我是导出的CSV文件,执行的时候,第一行的 'ALTERTABLE'||TABLE_NAME||'ALL 不要。
然后在命令行中执行 expworkbench/workbench@orcl file=d:\orcl.dmp log=d:\expOrcl.log 把dmp文件导出来
再导出来的dmp文件就会包含那些空表了。
导入的语句格式:imp workbench/workbench@orcl file=orcl.dmp ignore=y full=y