ORACLE下如何獲得全部的索引創建語句


今天打算將一個數據庫的索引在另一個測試庫上重新創建一遍,研究了一下。
set pagesize 0
set long 90000
set feedback off
set echo off
spool all_index.sql
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name)
FROM USER_INDEXES u;spool off;最后找個編輯器替換一下表空間名,在表空間名后面加上個;
然后讓ORACLE慢慢執行吧
其實是調用DBMS_METADATA.GET_DDL這個外部過程來獲得創建DLL語句,還能獲得很多東西
這個是所有用戶的創建DLL
SELECT DBMS_METADATA.GET_DDL('USER',U.username)
FROM DBA_USERS U;
這個是所有表的DLL
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)
FROM USER_TABLES u;
所有表空間的DLL
SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)
FROM DBA_TABLESPACES TS;
組合一下,所有表,索引存儲過程
SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, u.object_name)
FROM USER_OBJECTS u
where U.OBJECT_TYPE IN ('TABLE','INDEX','PROCEDURE');另外一個相關的語句生成刪除某個用戶全部索引的語句


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM