今天用PL/SQL导出dmp文件,发现导出后表少了十几个,后查了一下,原来是空表没有导出。
首先使用下面的sql语句查询一下当前用户下的所有空表:
select table_name from user_tables where NUM_ROWS=0;
为空表手工分配空间:
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
然后把上面语句查询的结果复制下来,一次运行一遍,然后就完成了。
下面附dos窗口运行过程:
SQL> select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
-----------------------------------------------------------
alter table T_FW_SYNONYMS allocate extent;
alter table T_FW_MUSCOLL_RCWH allocate extent;
alter table T_CF_EX_TEMPLATE allocate extent;
alter table QRTZ_SIMPROP_TRIGGERS allocate extent;
alter table QRTZ_SIMPLE_TRIGGERS allocate extent;
alter table QRTZ_PAUSED_TRIGGER_GRPS allocate extent;
alter table QRTZ_FIRED_TRIGGERS allocate extent;
alter table QRTZ_CALENDARS allocate extent;
alter table QRTZ_BLOB_TRIGGERS allocate extent;
alter table T_FW_MUSCOLL_CPCRK_DETAIL allocate extent;
alter table T_FW_ID_SEQUENCE allocate extent;
alter table T_CF_EX_TEMPLATE_FIELD allocate extent;
已选择12行。
SQL> alter table T_FW_SYNONYMS allocate extent;
表已更改。
SQL> alter table T_FW_MUSCOLL_RCWH allocate extent;
表已更改。
SQL> alter table T_CF_EX_TEMPLATE allocate extent;
表已更改。
SQL> alter table QRTZ_SIMPROP_TRIGGERS allocate extent;
表已更改。
SQL> alter table QRTZ_SIMPLE_TRIGGERS allocate extent;
表已更改。
SQL> alter table QRTZ_PAUSED_TRIGGER_GRPS allocate extent;
表已更改。
SQL> alter table QRTZ_FIRED_TRIGGERS allocate extent;
表已更改。
SQL> alter table QRTZ_CALENDARS allocate extent;
表已更改。
SQL> alter table QRTZ_BLOB_TRIGGERS allocate extent;
表已更改。
SQL> alter table T_FW_MUSCOLL_CPCRK_DETAIL allocate extent;
表已更改。
SQL> alter table T_FW_ID_SEQUENCE allocate extent;
表已更改。
SQL> alter table T_CF_EX_TEMPLATE_FIELD allocate extent;
表已更改。
然后用PL/SQL导出dmp文件。
首先选择所有要导出的表,然后右击,选择导出数据。
然后按照下图点击,最后完成dmp文件的导出。
最后跳出窗口,运行完成后,即导出dmp文件