熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

oracle修改索引現有表空間

2013-11-13 16:22:56  來源: Oracle 

  //dba_indexes可查詢所有索引以及索引部分信息可以靈活運用於其他用途

  //假設用戶USER現有表空間TSTS需要遷移其下所有表空間TS的索引到TS可使用以下語句(在pl sql中)

  SELECT ALTER INDEX ||

  INDEX_NAME ||

   REBUILD TABLESPACE T;

  FROM DBA_INDEXES WHERE TABLE_OWNER = USER AND TABLESPACE = TS;

  //也可以直接寫sql語句 ALTER INDEX YOUR_INDEX_NAME REBUILD TABLESPACE TS;

  //執行上面這句話會查詢出N多條記錄復制新開SQL Window粘貼F執行執行完畢後再次查詢發現USER所有屬於TS的索引都改為TS紅色需要修改為自己的表空間和用戶

  注意上面執行完畢後可能會遇到不能alter 或 drop Lob類型索引的錯誤這是因為你的表中BLOB或CLOB類型字段它會自動給這類數據增加所以並且無法直接修改可以用以下語句解決

  //先創建一個臨時表 CREATE TABLE T_TABLE AS SELECT* FROMTABLE ;

  //刪除有LOB字段的表 DROP TABLE TABLE;

  //重新創建剛剛的表 CREATE TABLETABLE AS SELECT* FROMT_TABLE;

  //刪除臨時表 DROP TABLET_TABLE;

  //顏色隨便弄弄你們知道就好了…


From:http://tw.wingwit.com/Article/program/Oracle/201311/18235.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.