`
koreyoshi
  • 浏览: 237105 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

解决oracle11g空表导不出来

 
阅读更多
 
方法一:
Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; 
在plsql执行上面查询语句 
将查询结果复制出来在plsql执行就可以了
 
 方法二:
--导出前执行这个
DECLARE
  I INTEGER;
  B VARCHAR2(200);
BEGIN
  FOR C IN (select 'alter table '||table_name||' allocate extent' as txt
            from user_tables A where A.TEMPORARY='N' AND (A.NUM_ROWS = 0 OR A.NUM_ROWS IS NULL)
            AND NOT EXISTS (SELECT 1 FROM USER_EXTENTS B
                           WHERE B.SEGMENT_NAME=A.table_name
                           AND B.SEGMENT_TYPE LIKE 'TABLE%')
            ) LOOP
    DBMS_OUTPUT.PUT_LINE(C.txt);
    EXECUTE IMMEDIATE C.txt;
  END LOOP;
  EXCEPTION
    WHEN OTHERS THEN
    DBMS_OUTPUT.put_line(SQLERRM);
END;
/
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics