oracle11g 导出表报EXP-00011:table不存在。
oracle11g,在用exp命令備份數據庫時,如果表中沒有數據報EXP-00011錯誤,對應的表不存在。這導致對應的空表無法備份。
原因:11g默認創建一個表時不分配segment,只有在插入數據時才會產生(當然也可以強制分配),以節省磁盤空間。
對于已經存在的空表解決辦法:
就是想辦法讓空表有segment,第一種:可以通過插入數據的方式(不想要這些數據可以回滾),只要有insert動作就會分配segment;
??????????????????????????????????????? 第二種:就是強制分配:alter table tablename allocate extent;
如果采用第二種可以用以下方法:
1、用以下這句查找空表:select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
?2、把查詢結果導出,執行導出的語句;
為了后面創建的表能直接分配segment:
用系統賬戶登錄數據庫,修改參數deferred_segment_creation(11g新增的)。該參數即指是否延遲創建segment,默認為true。如果想讓表創建時就分配segment,那么就應該修改該參數為false即alter system set deferred_segment_creation=false。如下所示:
?
總結
以上是生活随笔為你收集整理的oracle11g 导出表报EXP-00011:table不存在。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用了5年Excel,换了这个神奇的报表工
- 下一篇: 大厂程序员辞职创业,赚的还没原来多!