如何在oracle 11g 中匯出空表

來源:互聯網
上載者:User

   如何在oracle 11g 中匯出空表

  由於oracle 11g的 延遲段建立的新特性,導致在沒有資料插入時,oracle是不會分配資料區段的,進而導致exp 是不能匯出11g資料庫的空表的。

  當然採用expdp就不存在這個問題了。

  expdp hr/hr schemas=hr dumpfile=expdp.dmp directory=dbtest

  conn hr/hr

  select TABLE_NAME,NUM_ROWS from user_tables;

  TABLE_NAME NUM_ROWS

  ------------------------------ ----------

  LOCATIONS 23

  EMP_1 0

  PART_TIME_EMPLOYEES 0

  TEST3 5

  TEST1 5

  TEST 5

  PC_WELL_TEST 2

  PC_ALARM_SORT_TEST 1

  MVIEW_PC_WELL_TEST 2

  MV_CAPABILITIES_TABLE 14

  T 0

  TEST2

  SYS_EXPORT_SCHEMA_01

  SYS_EXPORT_SCHEMA_02

  HOURLY_EMPLOYEES 0

  COUNTRIES 25

  ADMIN_EXT_EMPLOYEES

  ADMIN_WORK_AREA

  EMPLOYEES 107

  DEPARTMENTS 27

  DIGITS 2

  REGIONS 4

  JOB_HISTORY 10

  JOBS 19

  24 rows selected.

  為什麼這裡的num_rows為空白呢?

  那是因為表剛建立,資料字典中還沒有這個表相關的統計資訊呢。

  SQL> select 'alter table '||table_name||' allocate extent;' from user_tables where

  num_rows=0

  'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'

  -----------------------------------------------------------

  alter table PART_TIME_EMPLOYEES allocate extent;

  alter table EMP_1 allocate extent;

  alter table T allocate extent;

  alter table HOURLY_EMPLOYEES allocate extent;

  所以對於網上一些在oracle11g上先使用手工分配extent 再使用exp來導資料庫,在實際上效果不怎麼地,反而是多次一舉直接使用expdp來導oracle 11g資料庫中空表來的方便多了。

  當然對那些要從11g導低版本,還是可以的採用這個辦法,但是要注意,要麼對所有相關的表進行分析系,然後使用上述那個批量指令碼。或者不分析表,直接手工用ue編輯分配extent的命令。

  SQL> select TABLE_NAME,NUM_ROWS from user_tables where NUM_ROWS=0;

  TABLE_NAME NUM_ROWS

  ------------------------------ ----------

  PART_TIME_EMPLOYEES 0

  EMP_1 0

  T 0

  HOURLY_EMPLOYEES 0

  補充資訊:

  USER_TABLES describes the relational tables owned by the current user. Its columns (except

  for OWNER) are the same as those in ALL_TABLES. To gather statistics for this view, use the

  DBMS_STATS package.

  收集表的統計資訊:

  analyze table xxx compute statistics;

  or

  exec dbma_stats.gather_table_stats('USER', 'TABLE');

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.