批量匯出建立索引的指令碼
有同事要匯出一個資料庫使用者下建立索引的指令碼,然後拿到另外一個庫裡面去執行。很少有這樣的需求,問了一下,他們要進行資料遷移,在新的庫中要求索引單獨放在一個表空間裡面,於是就把所有的索引都刪除了,進行重建。
本來這個可以用如下方法來實現:
ALTER INDEX index_name rebuild tablespace tbs_name; |
既然索引已經刪除了,就需要從原資料庫中匯出建立索引的指令碼,索引是依附於表而存在的,沒有辦法用exp/expdp工具單獨匯出建立索引的指令碼,不過我們可以通過如下方法進行:
1 生成批量匯出索引的語句
在sqlplus中執行 spool create_create_index.SQL SELECT 'select dbms_metadata.get_ddl(''INDEX'', ' || ''''|| INDEX_NAME||'''' || ') from dual;' FROM user_indexes ; spool off |
2 生成建立索引的sql語句
在sqlplus中執行 spool create_index.SQL @create_create_index.SQL spool off |
得到b.sql檔案中即為建立索引的語句
3 建立索引
在sqlplus中執行 @create_index.SQL |
另外,如果用的是expdp遷移的話,在impdp的時候有一個SQLFILE引數,可以生成所有的ddl,這也包括所有的create index語句,但這個方法需要有expdp檔案,另外需要在所有的ddl中選出相應的create index語句,相對以上方法較為複雜。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29119536/viewspace-1093888/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 通過impdp匯出索引指令碼索引指令碼
- 【原創】匯出所有物件(表、索引、檢視、同義詞)的建立指令碼物件索引指令碼
- 如何匯出MySQL索引的建立語句MySql索引
- expdp 匯出指令碼指令碼
- 按建立日期批量整理手機中匯出的照片
- Elasticsearch批量匯入資料指令碼(python)Elasticsearch指令碼Python
- Linux批量建立使用者指令碼Linux指令碼
- shell指令碼建立使用者及批量建立使用者指令碼
- 批量改名的指令碼指令碼
- 使用SQL批量查詢出建立使用者及許可權指令碼SQL指令碼
- mysql匯入匯出指令碼的區別對比MySql指令碼
- 表統計資訊匯出匯入指令碼指令碼
- 資料匯出shell指令碼(上)指令碼
- MySQL匯出資料庫指令碼MySql資料庫指令碼
- Sqlserver自動查詢缺失索引及拼出建立索引的語句的指令碼SQLServer索引指令碼
- jsfl批量匯出swfJS
- python 小指令碼 (實現 elasticsearch 匯出匯入)Python指令碼Elasticsearch
- unix、linux oracle rman匯出指令碼LinuxOracle指令碼
- 批量生成DDL指令碼指令碼
- sqlldr批量匯入匯出資料測試SQL
- 使用csv批量匯入、匯出資料的需求處理
- [指令碼例項]——大批量建立信任關係+大批量分發檔案指令碼
- 批量修改檔名的bash指令碼指令碼
- sqoop指令碼批量生成OOP指令碼
- Oracle expdp/impdp匯入匯出備份資料庫指令碼Oracle資料庫指令碼
- 批量匯出csv檔案的基本嘗試
- 大量包含Insert語句的指令碼檔案批量執行匯入資料指令碼
- 找出冗餘索引的指令碼索引指令碼
- [ Shell ] 通過 Shell 指令碼匯出 CDL 網表指令碼
- 匯出oracle表記錄為insert指令碼Oracle指令碼
- 從Oracle資料庫中匯出SQL指令碼Oracle資料庫SQL指令碼
- 設定自動匯出(exp)備份指令碼指令碼
- 【工具】批量刪除binlog 的指令碼指令碼
- 【SQL】Oracle BLOB 批量匯入匯出圖片語句SQLOracle
- hadoop_批量命令指令碼&同步檔案指令碼Hadoop指令碼
- 批量move tablespace 指令碼範例指令碼
- ANT批量執行Jmeter指令碼JMeter指令碼
- impdp 匯入 指令碼指令碼