前兩天在使用oracle數據庫,使用dba用戶利用PL/SQL 中的tool中export table導出表結構時,出現瞭如下問題:
好多張表“報錯(EXP-00003)未找到段 (0,0) 的存儲定義 ”,出現這樣的結果,經過查找相關資料,對比表結構,最終發現凡是報這個錯誤的表都是空表---即表中無數據。知道這個特點之後,通過查找資料,最終發現問題所在”oracle11GR2中有個新特性,當表無數據時,不分配segment,以節省空間沒有任何記錄,沒有分配段造成的,說到底是延時分區的原因“。爲什麼出現這問題,搞明白了,之後就是解決。
我的解決方式如下:
通過select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;然後生成的 sql查出來的結果, 就是各個表的alter語句,然後利用PL/sql的導出csv文件的形式,將所有生成的 sql導出,之後打開csv文件,將所有alter sql語句拷貝到PL/SQL的命窗口執行。
執行之後再導出,問題解決。